套件概述2 U: B; |, }! b, L STM32WB系列微控制器代表了STMicroelectronics在无线技术领域的新一代创新,集成了Bluetooth 5.0、Zigbee和Thread等多种无线通信协议。而在这些无线应用中,监测和管理连接状态显得尤为关键。确保可靠连接不仅对于数据的实时传输至关重要,而且在面对低功耗需求、设备管理和故障诊断时,都有着不可或缺的作用。1 c5 x2 U$ W/ W- C/ B. G 本文将深入探讨STM32WB的连接状态监测机制。我们首先会讨论为什么需要监测连接状态,然后介绍STM32WB提供的相关工具和技术。随后,我们会详细解释如何使用这些工具来实时跟踪和管理连接状态,以及如何解读和响应不同的连接状态事件。通过这些内容,读者将能够更好地理解和利用STM32WB的无线连接功能,为其应用带来更高的可靠性和效率。 " `* u: T0 N- x 选择芯片型号 8 M* S, W# D& j4 C. E' \ f, d & v6 A" J7 ]5 F: Z3 V1 N 5 N; D5 V; A! R 配置时钟源 2 Q2 C4 g* z f8 y- J) U/ Y HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:) y: b* M* N1 R# D2 W* t+ [ 9 W1 J# d" f. ]5 _5 |# w! H 配置时钟树 3 \1 p) K# W* d) B- ^7 s; s) M RTC时钟配置 ) m( e2 v3 V6 N ' N; I0 d4 G+ G7 u RFWKP时钟配置# l, o2 T, Z9 I/ C$ g4 A9 J3 p$ {1 \; G $ x- T7 o8 z3 ^9 y( s ) a* f8 y# G) z5 O3 X7 P " C" l+ ~* y) w: k 查看开启STM32_WPAN条件 可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。 4 M8 G* h/ n+ V% x# X " x4 Z8 f- o+ o+ {# t 配置HSEM 硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。6 [, u) E r6 y" J# D. ~& q 开启HSEM如下。 $ e; C% g' v9 \0 C 配置IPCC 通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。 开启如下所示。 配置RTC ; J6 j. h& [$ O+ N& d" _ \. o 启动RF # A0 f0 N% X5 r! z 2 I5 A) \3 a' @/ i9 a 3 s# T: a9 Z1 S3 e+ L! t 开启蓝牙 $ a. y3 [) E4 [8 O 配置为自定义模板。 2 L$ v, `( l6 f0 g: V1 k' O( w 命名设备名 0 Z7 w' O; Y! L ?: U# r" r 6 o7 O0 J7 w, [$ I) n) N. b 配置BLE GATT7 V6 b% G/ f! M; O9 m8 Q2 ~ ( ]- T9 P# l" h `4 X* d 配置SVC+ c2 ~% t5 \: U$ n$ j7 K' h* P ! R) D5 q7 Y: o( T9 n9 ] 6 _ S7 v: K6 b2 {* j9 B) t; U5 y- Z; Y LED配置 查看原理图可以得知PB0为蓝色LED,PB1为绿色LED。7 t6 ^8 N; l* x$ c) o # i! F. V4 X: \ 配置PB0、PB1为输出IO。 6 A& n ~: J0 w& X: ?# i. R 设置工程信息 工程文件设置 * X* H6 r; l) B$ Q+ | % p! v1 J& k b5 r2 B8 }" \4 r" E# n SVCCTL_App_Notification ' m, E4 U# a4 |* C" J+ [5 P4 F* F% @ SVCCTL_App_Notification函数是一个蓝牙事件处理器,用于响应和处理STM32WB BLE堆栈中发生的各种事件。 : @* p7 h# L5 y+ k 事件处理的主要内容:* X2 }! c/ U" |$ V, `0 I i8 u, G* n 1.断开连接事件 (HCI_DISCONNECTION_COMPLETE_EVT_CODE): q) F: l8 b6 L7 b4 p 2.元事件 (HCI_LE_META_EVT_CODE) 3.这部分处理了几个子事件,如HCI_LE_CONNECTION_UPDATE_COMPLETE_SUBEVT_CODE(连接更新完成)和HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE(新的连接建立完成)。5 y$ l6 `7 F7 ]) t: _ 4.厂商特定调试事件 (HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE)' C4 Z7 o4 V& f8 U8 L “在HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE事件中,我们能够判断Bluetooth Low Energy(BLE)设备是否已成功建立了一个新的连接。相反,在HCI_DISCONNECTION_COMPLETE_EVT_CODE事件里,我们可以确认是否一个已存在的连接已经被断开。这两个事件为我们提供了监控BLE连接状态的重要手段,从而使我们能够更好地管理设备的连接生命周期。”
/ N3 c+ }9 ~- u - j) \$ ]) \) W5 Y# g M- f0 X 在HCI_DISCONNECTION_COMPLETE_EVT_CODE中添加一个IO翻转函数。# u% j6 G% }- [ ^4 S+ ]6 S( A 4 _5 t3 \5 C5 e( X 结果演示 % k1 t. S3 L% S+ w* x 通过手机和STM32WB建立连接和断开连接可以查看到IO扣电平变化。4 _' T5 z# b( ~# o9 V. t9 x; F : r; E: C2 L7 p( b9 s6 f3 A* r 转载自: 记帖如有侵权请联系删除 1 V: Q' k1 r9 K; O2 ]& M3 n % T& @0 x' Q) I3 ^4 R8 Z |
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摸索(二)