套件概述 STM32WB系列微控制器代表了STMicroelectronics在无线技术领域的新一代创新,集成了Bluetooth 5.0、Zigbee和Thread等多种无线通信协议。而在这些无线应用中,监测和管理连接状态显得尤为关键。确保可靠连接不仅对于数据的实时传输至关重要,而且在面对低功耗需求、设备管理和故障诊断时,都有着不可或缺的作用。7 L1 {0 X0 W4 L# b d1 z % F. s4 h$ w/ e* \* C3 p 本文将深入探讨STM32WB的连接状态监测机制。我们首先会讨论为什么需要监测连接状态,然后介绍STM32WB提供的相关工具和技术。随后,我们会详细解释如何使用这些工具来实时跟踪和管理连接状态,以及如何解读和响应不同的连接状态事件。通过这些内容,读者将能够更好地理解和利用STM32WB的无线连接功能,为其应用带来更高的可靠性和效率。 8 U U/ U' V3 ?, c. I 选择芯片型号 0 O Q1 H; e' o$ _" C ! V8 P4 c! Q& G 配置时钟源 3 Z' f! h- T. T' N4 T8 S HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:6 n' @" I; d- ^+ ~, v" Y 配置时钟树 2 w* n3 a6 C$ r; G8 D RTC时钟配置 5 t$ n5 m& I2 [( P RFWKP时钟配置 6 Q$ W# G$ A" _1 T* p" p+ g" M; e ; s- J" j3 M; a$ R! b% ^8 v t* i, q9 |$ B( N 查看开启STM32_WPAN条件 可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。 1 U+ k5 n' s) ^, C+ ?& \7 [4 b# F 配置HSEM " ]0 ]; n0 o+ w5 z! B) O% k 硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。( d- L( n+ k/ o 开启HSEM如下。 配置IPCC $ k5 E/ N0 ~. P( _) J5 U- o3 `$ P; O 通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。 开启如下所示。 配置RTC 启动RF ( \' p, X! A W# Q- n 开启蓝牙 / y1 P1 `( Q; U9 C 配置为自定义模板。# ?' }6 g, O6 T4 Z 0 |# z# f9 \: o! @' A+ s! {+ R, y 命名设备名 配置BLE GATT0 r/ S6 P9 x+ U3 P, k) l8 K0 \1 T , d- n- n) B" X/ o3 C8 U2 n4 Z2 D ! h8 _2 ~% y0 v* N u9 ]" J2 R 配置SVC 2 N: k9 e$ p, C5 V+ J! p LED配置 7 M5 @) y8 l- ?% K+ d" H 查看原理图可以得知PB0为蓝色LED,PB1为绿色LED。 Y7 B3 u S, @' D 配置PB0、PB1为输出IO。% ~6 y; ~' G% c- x+ f 设置工程信息 : Q) X* i: `( Z5 W0 d 工程文件设置 SVCCTL_App_Notification SVCCTL_App_Notification函数是一个蓝牙事件处理器,用于响应和处理STM32WB BLE堆栈中发生的各种事件。 事件处理的主要内容:1 X4 V( X' h+ i. P& @ 1.断开连接事件 (HCI_DISCONNECTION_COMPLETE_EVT_CODE) 2.元事件 (HCI_LE_META_EVT_CODE), K+ @& k$ w" U 3.这部分处理了几个子事件,如HCI_LE_CONNECTION_UPDATE_COMPLETE_SUBEVT_CODE(连接更新完成)和HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE(新的连接建立完成)。9 ]) L* J* `! X. H6 n 4.厂商特定调试事件 (HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE)& B. h$ |. u/ V% _1 |4 b+ f2 n" z “在HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE事件中,我们能够判断Bluetooth Low Energy(BLE)设备是否已成功建立了一个新的连接。相反,在HCI_DISCONNECTION_COMPLETE_EVT_CODE事件里,我们可以确认是否一个已存在的连接已经被断开。这两个事件为我们提供了监控BLE连接状态的重要手段,从而使我们能够更好地管理设备的连接生命周期。”2 f% W" i! M$ V
8 k7 O5 C. z& H8 ^; w" J* E6 X 在HCI_DISCONNECTION_COMPLETE_EVT_CODE中添加一个IO翻转函数。' O5 s T w# o' W1 { ! `! `. D: m7 \5 q) h6 ]6 O. k1 | 结果演示 通过手机和STM32WB建立连接和断开连接可以查看到IO扣电平变化。, g, { }( Y" Q2 f i- U! H( o 7 M" b- j2 C7 i; w+ u . r0 B+ Z8 Z5 ] 转载自: 记帖如有侵权请联系删除8 \( o" E6 o+ Y |
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摸索(二)