套件概述/ X1 U1 G9 A! y) ?/ } STM32WB系列微控制器代表了STMicroelectronics在无线技术领域的新一代创新,集成了Bluetooth 5.0、Zigbee和Thread等多种无线通信协议。而在这些无线应用中,监测和管理连接状态显得尤为关键。确保可靠连接不仅对于数据的实时传输至关重要,而且在面对低功耗需求、设备管理和故障诊断时,都有着不可或缺的作用。 本文将深入探讨STM32WB的连接状态监测机制。我们首先会讨论为什么需要监测连接状态,然后介绍STM32WB提供的相关工具和技术。随后,我们会详细解释如何使用这些工具来实时跟踪和管理连接状态,以及如何解读和响应不同的连接状态事件。通过这些内容,读者将能够更好地理解和利用STM32WB的无线连接功能,为其应用带来更高的可靠性和效率。 6 \+ o, p! s) i' v! p. D : Y9 R" ?- F* Q4 W / o' E+ E8 p% ~6 C3 g 选择芯片型号 9 P/ z& z$ Z0 T! P4 ?/ m , o1 Y' j& ^* i ' C' I, `7 q$ `. E! B( L 配置时钟源 HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:( n7 H% K, n- }/ a 3 y2 P. y' T' b3 N- L / |1 l; z4 T4 \* W/ J* }, l# C$ Z 配置时钟树 # \5 C- D1 x) z# Y# V/ O# G RTC时钟配置 J+ \, |7 t, j RFWKP时钟配置9 d$ |' J. v7 }3 g . c. C/ S, N' k% L0 @* Y * @$ o/ A. h4 v1 n$ } 查看开启STM32_WPAN条件 可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。2 J& _" T. c0 N8 C: k/ q" B 配置HSEM $ N3 R( f. `6 N- f% h( b% v5 S 硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。 开启HSEM如下。 配置IPCC 通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。 开启如下所示。+ a0 d5 a: H8 d9 o ) z5 [. H2 {3 ~. o 配置RTC 4 s; r+ B% ^* T+ n* t/ M 9 Z; ^6 M. q8 a) V( b+ W 启动RF 3 u# a# r+ P7 Y2 n : D- a: d1 h# ~: d6 E 开启蓝牙 : Z! h4 B2 @/ y, M c 配置为自定义模板。/ C& R% M* l; S2 h, | , N7 n5 ]% Q5 S; h% t+ y( T : ~$ ?( r# _2 p 命名设备名 ; N1 g+ L/ S0 e9 S2 G6 s 3 }" W7 i2 l, i5 X, |& V: H 配置BLE GATT * R1 ~8 s! C6 Y9 Y. c% a3 h: T 配置SVC 0 u }" Q0 m$ N9 F5 J I ( y$ D2 k {4 i, [# d# i# V9 C LED配置 * S1 C" B: G/ P% [( a 查看原理图可以得知PB0为蓝色LED,PB1为绿色LED。1 P' A6 j8 V5 G* d9 t; J; e ) J. S, e# r* A 配置PB0、PB1为输出IO。 6 ^9 O0 ]. E5 [; y 设置工程信息 , u- @7 _6 w6 N$ z- }( u4 ^5 @" O( Q* { 工程文件设置 # y5 {; H$ h* V# G" | ( b. ?9 \# h. n: Q W$ i- M SVCCTL_App_Notification ! t* K8 }% `! D# u SVCCTL_App_Notification函数是一个蓝牙事件处理器,用于响应和处理STM32WB BLE堆栈中发生的各种事件。 6 T2 f$ b6 M& l; y; s 事件处理的主要内容:' N+ C0 _8 r8 t0 R$ F 1.断开连接事件 (HCI_DISCONNECTION_COMPLETE_EVT_CODE) 2.元事件 (HCI_LE_META_EVT_CODE) 3.这部分处理了几个子事件,如HCI_LE_CONNECTION_UPDATE_COMPLETE_SUBEVT_CODE(连接更新完成)和HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE(新的连接建立完成)。1 F, X5 M' w+ B) P# n+ H 4.厂商特定调试事件 (HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE)0 j/ Q d+ f+ @' {( v “在HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE事件中,我们能够判断Bluetooth Low Energy(BLE)设备是否已成功建立了一个新的连接。相反,在HCI_DISCONNECTION_COMPLETE_EVT_CODE事件里,我们可以确认是否一个已存在的连接已经被断开。这两个事件为我们提供了监控BLE连接状态的重要手段,从而使我们能够更好地管理设备的连接生命周期。”
在HCI_DISCONNECTION_COMPLETE_EVT_CODE中添加一个IO翻转函数。6 Z5 A" q* n: G$ r: Q$ @" S9 s1 s y6 S7 f# L- f: Y# F7 s6 P 结果演示 通过手机和STM32WB建立连接和断开连接可以查看到IO扣电平变化。3 U' G# j+ U0 O3 {( e4 w2 U * O9 w) \# K2 x! ] % m, D& F9 B' J& D" q( e$ U8 G 转载自: 记帖如有侵权请联系删除 + p- e7 r8 a. g+ w9 y( S6 U ! {" Y' p' y" {: V |
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摸索(二)