套件概述 STM32WB系列微控制器代表了STMicroelectronics在无线技术领域的新一代创新,集成了Bluetooth 5.0、Zigbee和Thread等多种无线通信协议。而在这些无线应用中,监测和管理连接状态显得尤为关键。确保可靠连接不仅对于数据的实时传输至关重要,而且在面对低功耗需求、设备管理和故障诊断时,都有着不可或缺的作用。 本文将深入探讨STM32WB的连接状态监测机制。我们首先会讨论为什么需要监测连接状态,然后介绍STM32WB提供的相关工具和技术。随后,我们会详细解释如何使用这些工具来实时跟踪和管理连接状态,以及如何解读和响应不同的连接状态事件。通过这些内容,读者将能够更好地理解和利用STM32WB的无线连接功能,为其应用带来更高的可靠性和效率。# V, E {9 z# b* v! C- m7 r9 ]" O 选择芯片型号 $ _4 k# @9 Q; X, | E& Z+ U ' m+ X' F8 U a- a. @. x/ p 配置时钟源 * C6 Q0 k2 ~4 U M9 E: Q HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:7 }- G4 g4 Z1 Z ) n) T9 C6 g* {# C8 f# @3 u 配置时钟树 RTC时钟配置 5 m0 P/ u x, T % T& U- j0 [! q( ` RFWKP时钟配置 / Y: h/ x5 x( p+ p , `5 k- Q2 W6 s8 l9 E / [9 h2 w8 ]6 [9 X2 W8 ^% [! S% i 查看开启STM32_WPAN条件 # ?# C9 d S9 A/ _" A 可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。 {3 K+ R- a6 `8 l8 _- u5 T. | ; K1 P" x5 p/ ]1 x" G( v! t. K2 r/ V+ l 配置HSEM 5 s, m8 j" M4 C 硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。+ @ k" Z6 D8 [" T% v% A6 t 开启HSEM如下。 ( @) v; |' v2 E+ Y* F: [ 配置IPCC 通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。6 b8 o) g! Q* x1 R3 }7 p 开启如下所示。& o! R+ Y/ A0 U: F% g 配置RTC , @) D" {# n* ]6 t5 U 启动RF 5 f1 E$ \' {9 `! K! n& S" W : z& V8 p1 @- {, |0 H% b 开启蓝牙 ) H u7 `) a% Y% q4 N- [8 H- `9 z! e " Q0 M G& B6 B# Z1 M 4 g/ @+ r0 O2 \2 k1 Z4 Q, ` 配置为自定义模板。) ?" d! t" g& A+ d9 D1 ~ ] / C' w6 W# X8 L7 K" _' f( i $ d+ b& ?! v8 n; F7 Y* f2 R" E9 a 命名设备名 配置BLE GATT( l6 _ ]2 i6 X$ i2 B) Z- I# s 配置SVC ) C. ^1 ]: `: j. F LED配置 1 {1 r' T$ b" |# A h/ O$ c 查看原理图可以得知PB0为蓝色LED,PB1为绿色LED。 1 P6 { k$ k5 I* K$ J" T 6 y: `4 \7 w1 g; z. t& T 配置PB0、PB1为输出IO。( o" Z4 b$ W" x' a " B/ _0 {2 {) `8 v' n6 i / S; n& B, f# ]' ] i 设置工程信息 / K, K# M; b4 Q) L: h% s6 _8 N 工程文件设置 3 P4 F P z: p # p* L# ]) J" p' \( C6 y" O( o SVCCTL_App_Notification 1 @' v" P0 E8 d+ t- ~: L+ y0 [2 j SVCCTL_App_Notification函数是一个蓝牙事件处理器,用于响应和处理STM32WB BLE堆栈中发生的各种事件。 ( e- e$ l; p1 ]% C% D4 Q/ _ 事件处理的主要内容: o9 T+ ~5 \9 u9 k# [ 1.断开连接事件 (HCI_DISCONNECTION_COMPLETE_EVT_CODE)" `! H* N( a7 x8 M8 d 2.元事件 (HCI_LE_META_EVT_CODE) 3.这部分处理了几个子事件,如HCI_LE_CONNECTION_UPDATE_COMPLETE_SUBEVT_CODE(连接更新完成)和HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE(新的连接建立完成)。1 w/ c) q& P4 |3 J# e- U; R 4.厂商特定调试事件 (HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE)+ O! }8 r1 X. k8 v “在HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE事件中,我们能够判断Bluetooth Low Energy(BLE)设备是否已成功建立了一个新的连接。相反,在HCI_DISCONNECTION_COMPLETE_EVT_CODE事件里,我们可以确认是否一个已存在的连接已经被断开。这两个事件为我们提供了监控BLE连接状态的重要手段,从而使我们能够更好地管理设备的连接生命周期。” ( o" ^+ s5 g X/ j. T
在HCI_DISCONNECTION_COMPLETE_EVT_CODE中添加一个IO翻转函数。7 p* s! }4 [/ d6 N6 S 结果演示 ) O* H% g8 A9 b! E 通过手机和STM32WB建立连接和断开连接可以查看到IO扣电平变化。( k' \& L5 q; g+ r8 r5 h( E9 ] 9 S& T7 r- T- W' f 转载自: 记帖如有侵权请联系删除 ; e" {5 u2 J* A; i; d# }2 Q |
4月25日培训|基于ST 双核多协议STM32WB55的Matter方案开发
实战经验 | 关于STM32WB OTA 速率提升引发的讨论
基于STM32WB55的配置串口打印Debug经验分享
基于创建STM32WBA BLE_Custom工程经验分享
来看直播了,就在明天 | STM32 Matter 解决方案,轻松实现智能家居无缝连接
基于STM32WB55开发之套件概述(1)
基于STM32WB55开发之修改蓝牙地址(2)
STM32WB基于Custom Template实现客户定制BLE私有协议
如何基于STM32WB一次性烧写FUS+STACK+APP
【STM32WB55评测】评测四 蓝牙mesh摸索(二)