概述
STM32WB系列微控制器代表了STMicroelectronics在無線技術(shù)領(lǐng)域的新一代創(chuàng)新,集成了Bluetooth 5.0、Zigbee和Thread等多種無線通信協(xié)議。而在這些無線應(yīng)用中,監(jiān)測和管理連接狀態(tài)顯得尤為關(guān)鍵。確??煽窟B接不僅對(duì)于數(shù)據(jù)的實(shí)時(shí)傳輸至關(guān)重要,而且在面對(duì)低功耗需求、設(shè)備管理和故障診斷時(shí),都有著不可或缺的作用。
本文將深入探討STM32WB的連接狀態(tài)監(jiān)測機(jī)制。我們首先會(huì)討論為什么需要監(jiān)測連接狀態(tài),然后介紹STM32WB提供的相關(guān)工具和技術(shù)。隨后,我們會(huì)詳細(xì)解釋如何使用這些工具來實(shí)時(shí)跟蹤和管理連接狀態(tài),以及如何解讀和響應(yīng)不同的連接狀態(tài)事件。通過這些內(nèi)容,讀者將能夠更好地理解和利用STM32WB的無線連接功能,為其應(yīng)用帶來更高的可靠性和效率。
最近在弄ST和瑞薩RA的課程,需要樣片的可以加群申請(qǐng):615061293 。
硬件準(zhǔn)備
首先需要準(zhǔn)備一個(gè)開發(fā)板,這里我準(zhǔn)備的是WB55RG 的開發(fā)板:
視頻教學(xué)
[https://www.bilibili.com/video/BV1Km4y1M7Ti/](
樣品申請(qǐng)
[https://www.wjx.top/vm/OhcKxJk.aspx#](
完整代碼下載
[https://download.csdn.net/download/qq_24312945/88295068](
選擇芯片型號(hào)
配置時(shí)鐘源
HSE與LSE分別為外部高速時(shí)鐘和低速時(shí)鐘,在本文中使用外置的時(shí)鐘源,故都選擇Crystal/Ceramic Resonator選項(xiàng),如下所示:
配置時(shí)鐘樹
RTC時(shí)鐘配置
RFWKP時(shí)鐘配置
查看開啟STM32_WPAN條件
可以看到,需要開啟RF、RTC、RCC、IPCC、HSEM。
配置HSEM
硬件信號(hào)量(HSEM)模塊用于管理多個(gè)進(jìn)程之間共享的訪問權(quán)限和資源同步。
開啟HSEM如下。
配置IPCC
通信控制器(IPCC)模塊的主要用于cpu之間的信號(hào)消息交換。
開啟如下所示。
配置RTC
啟動(dòng)RF
開啟藍(lán)牙
配置為自定義模板。
命名設(shè)備名
配置BLE GATT
配置SVC
LED配置
查看原理圖可以得知PB0為藍(lán)色LED,PB1為綠色LED。
配置PB0、PB1為輸出IO。
設(shè)置工程信息
工程文件設(shè)置
參考文檔
https://wiki.st.com/stm32mcu/wiki/Connectivity:STM32WB_HeartRate
HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE事件可以判斷是否構(gòu)建完成。
SVCCTL_App_Notification
SVCCTL_App_Notification函數(shù)是一個(gè)藍(lán)牙事件處理器,用于響應(yīng)和處理STM32WB BLE堆棧中發(fā)生的各種事件。
事件處理的主要內(nèi)容:
- 斷開連接事件 (HCI_DISCONNECTION_COMPLETE_EVT_CODE)
- 元事件 (HCI_LE_META_EVT_CODE)
- 這部分處理了幾個(gè)子事件,如HCI_LE_CONNECTION_UPDATE_COMPLETE_SUBEVT_CODE(連接更新完成)和HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE(新的連接建立完成)。
- 廠商特定調(diào)試事件 (HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE)
"在HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE事件中,我們能夠判斷Bluetooth Low Energy(BLE)設(shè)備是否已成功建立了一個(gè)新的連接。相反,在HCI_DISCONNECTION_COMPLETE_EVT_CODE事件里,我們可以確認(rèn)是否一個(gè)已存在的連接已經(jīng)被斷開。這兩個(gè)事件為我們提供了監(jiān)控BLE連接狀態(tài)的重要手段,從而使我們能夠更好地管理設(shè)備的連接生命周期。"
在HCI_DISCONNECTION_COMPLETE_EVT_CODE中添加一個(gè)IO翻轉(zhuǎn)函數(shù)。
/* USER CODE BEGIN EVT_DISCONN_COMPLETE */
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
/* USER CODE END EVT_DISCONN_COMPLETE */
在HCI_DISCONNECTION_COMPLETE_EVT_CODE中添加一個(gè)IO翻轉(zhuǎn)函數(shù)。
結(jié)果演示
通過手機(jī)和STM32WB建立連接和斷開連接可以查看到IO扣電平變化。
-
藍(lán)牙
+關(guān)注
關(guān)注
114文章
5823瀏覽量
170311 -
監(jiān)測
+關(guān)注
關(guān)注
2文章
3611瀏覽量
44524 -
BLE
+關(guān)注
關(guān)注
12文章
660瀏覽量
59406 -
連接
+關(guān)注
關(guān)注
2文章
95瀏覽量
20970 -
STM32WB55
+關(guān)注
關(guān)注
0文章
26瀏覽量
1324
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論