關鍵詞:STM32WBA,BLE,定制化
目錄預覽
1、介紹
2、使用CubeMX在STM32WBA上構建 Bluetooth Low Energy 應用
3、服務和特征配置
4、工具
5、NUCLEO-WBA52CG 的 CubeMX 初始化
6、驗證藍牙基本連接
7、使能串口日志追蹤
8、小結
01
介紹
STM32WBA 是 ST 最新一代的 BLE 芯片。該芯片已經獲得 STM32CubeMX 工具的支持,用戶可使用 STM32CubeMX 的圖形化界面、快速生成具備 IO 配置、時鐘配置、外設配置、中間件使用配置、BLE 服務配置等內容的基礎源碼工程。
本文檔將指導用戶如何使用 STM32CubeMX 軟件一步步生成基于 STM32WBA52MCU 的一個源碼工程;該工程實現了 BLE 外設功能、并具有定制化的 BLE 服務。使用STM32WBA 系列其他芯片也可以參考此文檔的步驟構建對應的基礎源碼工程。
02
使用CubeMX在STM32WBA上構建 Bluetooth Low Energy 應用
將 STM32CubeMX 生成的源碼工程進行簡單修改后,便可運行在 STM32WBA Nucleo 板上、實現 BLE 外設功能。
BLE 外設充當 GATT 服務器角色,手機 APP(ST BLE ToolBox)充當 GATT 客戶端角色,他們之間可以進行數據收發(fā)。
圖1.通信示意圖
03
服務和特征配置
該 GATT 服務器公開了一個定制化的服務(SerialPortService)并包含三個特征:
特征 1 具有 Notify 屬性,可發(fā)送數據給手機
特征 2 具有 Write without response 屬性,可接收手機的數據
特征 3 具有 Read 屬性,可接受手機的讀請求并發(fā)送響應數據包
服務器的服務和特征配置列舉如下 :
表1. 服務和特征配置
04
工具
4.1. 軟件工具
要制作和使用這個項目,完成應用程序所需的軟件工具是:
? STM32CubeMX 軟件 (v6.8.0 以上)
? STM32CubeWBA MCU Package (v1.0.0 以上)
? IDE: STM32CubeIDE or IAR
? 串口終端 (TeraTerm)
? 手機應用程序 STBLEToolbox
4.2. 硬件工具
還需要一個 STM32WBA Nucleo 板和一個 micro-B 到 Type-A USB 電纜。
圖2.硬件工具
05
NUCLEO-WBA52CG 的 CubeMX 初始化
5.1. CubeMX 初始化
打開 CubeMX 軟件及 MCU 選擇器,打開的過程可能會進行數據庫更新,耐心等待更新完成即可。另外,確保 CubeMX 是 6.8.0 以上版本,否則將找不到 STM32WBA 系列芯片。
圖3.芯片開始一個工程配置
進入 MCU 選擇器頁面后,按照下圖的步驟選中我們需要的開發(fā)板。
圖4.選擇對應的芯片型號
選擇系列分類
選擇 STM32WBA 系列
選擇對應的 STM32WBA 芯片型號
選擇 Start Project
圖5. 根據應用需求選擇是否使能 TrustZone
圖6. 切換到“Project Manager”頁,命名工程和選擇工程保存路徑和設置堆棧
用戶可以根據自己的應用需求對工程名稱路徑,IDE 類型以及堆和棧等進行設置,上圖給了一個參考示例。配置完成后,選中 File > Save Project 以保存工程配置(保存為.ioc 文件)。
5.2. 基本外設的配置
5.2.1. 切換到配置 SW 調試口
圖7. 配置 SW 調試口
5.2.2. 配置基本 RCC
圖8. 配置 RCC
5.3. STM32_WPAN BLE 依賴的外設的配置
STM32WBA 的 STM32_WPAN(BLE)的依賴項比較多。在配置的時候,我們無需死記需要配置的項目,可以將鼠標移到 STM32_WPAN 模塊中,停留 2 秒鐘,則會出現提示信息,用戶可根據這些提示信息來依次配置 STM32_WPAN BLE 需要的模塊。
STM32_WPAN BLE 模塊依賴的模塊包括:ADC、CRC、RAMCFG、ICACHE、RNG、RF、和 RTC。當用戶完成一個模塊的配置后,鼠標光標回到 WPAN 模塊時,提示信息會繼續(xù)指導用戶仍然需要配置的模塊,直到全部模塊配置完畢。
圖9. 根據提示信息來依次配置 STM32_WPAN
5.3.1. 配置 ADC
圖10. 配置 ADC
5.3.2. 配置 CRC
圖11. 根據提示配置下一個模塊(CRC)
圖12. 配置 CRC
5.3.3. 配置 RAMCFG
圖13. 配置 RAM
5.3.4. 配置 ICACHE
圖14. 配置 ICACHE
5.3.5. 配置 RNG
圖15. 配置 RNG
5.3.6. 配置 RF
圖16. 配置 RF
5.3.7. 配置 RTC
圖17. 配置 RTC 部分 1
圖18. 配置 RTC 部分 2
5.3.8. 配置 STM32_WPAN
當 WPAN 依賴的模塊全部配置完畢,我們便可以開始 WPAN 的配置:
圖19. 配置 STM32_WPAN
5.4. BLE GAP 和 GATT 配置
5.4.1. 配置 GAP
圖20. 配置廣播數據
5.4.2. 配置 GATT 服務
圖21. 配置 GATT(添加服務)
圖22. 配置 GATT(對服務進行定制化配置)
5.4.3. 配置自定義服務的特征 1(上報數據特征)
圖23. 配置上報數據特征
5.4.4. 配置自定義服務的特征 2(寫數據特征)
圖24. 配置寫數據特征
5.4.5. 配置自定義服務的特征 3(讀數據特征)
圖25. 配置讀數據特征
5.5. 其他配置與代碼生成
5.5.1. 進入“Clock Configuration”頁面,按下圖進行時鐘配置
圖26. 配置時鐘
5.5.2. 配置初始化函數
圖27. 配置初始化函數
5.5.3. 根據配置生成工程代碼,點擊“GENERATE CODE”按鈕,并等待源碼工程的生成。點“Open Folder”后,可看到如下代碼工程目錄:
圖28. 根據配置生成工程代碼
06
驗證藍牙基本連接
本文演示的是 IAR 工程的生成,用戶也可生成 CUBEIDE 工程。
打開 IAR 工程、用戶還需要手工增加代碼以開啟廣播,具體為:在 STM32_WPAN > App > app_ble.c > void APP_BLE_Init(void) 函數的尾部增加下圖所示的函數:
然后編譯、下載并復位,使代碼運行起來。
使用 ST BLE ToolBox 掃描,并連接該外設,可驗證我們上面的服務配置是否正確:
圖29. 驗證基本連接
07
使能串口日志追蹤
7.1. 當用戶需要使能串口 LOG 輸出功能時,可重新回到 CubeMX 的界面,進行串口的配置:
圖30. 配置串口
圖31. 配置串口 DMA
7.2. 為串口配置 GPDMA
圖32. 給串口配置 GPDMA TX
圖33. 給串口配置 GPDMA RX
圖34. 配置串口追蹤 1
圖35. 配置串口追蹤 2
圖36. 使能串口中斷
圖37. 配置串口注冊 callback
完成以上配置后,可再次點擊“GENERATE CODE”生成新的代碼。新的代碼會覆蓋掉工程中舊的代碼,但不會覆蓋工程中的用戶代碼部分。
7.3. 添加代碼、開啟串口日志追蹤
新的代碼生成后,還要再手工添加一些代碼:
在 app_conf.h 中添加宏定義“CFG_DBG_SUPPORTED”以及在 main.c 中添加函數RNG_KERNEL_CLK_OFF()
7.4. 驗證串口日志追蹤功能
驗證串口日志的方法比較簡單,直接打開串口助手,選擇好對應的串口,然后設置波特率為 115200,無奇偶校驗,數據為 8bit,1 位停止位。
圖38. 配置串口終端
7.4.1. 驗證讀特征
驗證讀特征可以在代碼中添加如下代碼(每次讀取數據,將數值加一后發(fā)送出去)
7.4.2. 驗證寫和 Notify(上報數據)特征
驗證寫特征和上報數據特征可以一起進行。當收到寫特征的數據時,直接將數據更新到上報數據特征中提交給 Client 端,如下圖所示,其中主要修改了兩個 case:
一個是允許寫,一個是將收到的數據寫回去。
7.4.3. 驗證日志追蹤
圖39. 驗證藍牙功能串口日志
08
小結
本文介紹了如何從芯片開始一步一步配置一個 BLE 工程,實際用戶在配置自己的項目時可以自行根據自己的項目需求而做相應的修改。
原文標題:實戰(zhàn)經驗 | 一步一步創(chuàng)建STM32WBA BLE_Custom工程
文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
-
單片機
+關注
關注
6032文章
44525瀏覽量
633260 -
STM32
+關注
關注
2266文章
10876瀏覽量
354927
原文標題:實戰(zhàn)經驗 | 一步一步創(chuàng)建STM32WBA BLE_Custom工程
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論