|
套件概述 STM32WB系列微控制器代表了STMicroelectronics在无线技术领域的新一代创新,集成了Bluetooth 5.0、Zigbee和Thread等多种无线通信协议。而在这些无线应用中,监测和管理连接状态显得尤为关键。确保可靠连接不仅对于数据的实时传输至关重要,而且在面对低功耗需求、设备管理和故障诊断时,都有着不可或缺的作用。 5 W' c0 v9 Q2 ?2 U 本文将深入探讨STM32WB的连接状态监测机制。我们首先会讨论为什么需要监测连接状态,然后介绍STM32WB提供的相关工具和技术。随后,我们会详细解释如何使用这些工具来实时跟踪和管理连接状态,以及如何解读和响应不同的连接状态事件。通过这些内容,读者将能够更好地理解和利用STM32WB的无线连接功能,为其应用带来更高的可靠性和效率。4 I5 ]; G9 n2 [4 b6 u: _. c : x9 p! l) R i, ?- j
选择芯片型号 ( u6 Q/ u/ f0 M1 R, o, B$ f
配置时钟源 . Q. F- B8 @. Y. l2 B HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示: 7 j1 y4 c6 u1 K7 M
5 k6 ^; C3 J. g& I, g: n0 v0 E 配置时钟树 # B( v) Q- @8 p& b
RTC时钟配置 # e: c+ H/ J8 G8 {! s , S. P" }1 o0 q2 |, D5 p
1 J5 Q) w8 |3 f1 U g+ ^& d' w RFWKP时钟配置' L0 h9 ^6 C2 h4 q9 `) N& j3 e
( e: G, h2 y! M/ H% [5 l q " K9 |& P- ~# B9 \& U2 W 查看开启STM32_WPAN条件 ' \+ i# A! Z# Y 可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。 . m2 O( Z# X' D0 X: ?
, W- x1 s! Q6 f, S+ e+ M 配置HSEM 硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。 开启HSEM如下。2 E2 Q. a* n" T
0 ^' d* i- Q. u6 ~. Y9 A1 @# S; Y 配置IPCC # D% C7 y# S1 e 通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。. J& K& U1 [/ }% ^; ] 开启如下所示。 3 F) W: \/ [, ~7 M2 D! s5 X2 ~* D& o
* U+ R3 v1 ~8 S5 k' N" ] 配置RTC , \8 N: q: R5 V
* R# W0 _! p8 t0 p 启动RF
开启蓝牙 3 h8 G) h+ W% t F. ?% n: F ) `: {/ s! ~2 a
配置为自定义模板。 1 y4 g) N. x2 h" e4 c) ?( w5 e
命名设备名 H4 m, R' P! T9 B: X " r+ O7 z7 I) Q$ S6 D1 S- [0 q; H
配置BLE GATT % ]- f2 E8 K. O9 U6 D
配置SVC ( L- j; C+ i5 q8 P1 Q" y" }
LED配置 ( n' r9 e, z7 l 查看原理图可以得知PB0为蓝色LED,PB1为绿色LED。3 X. M+ k! J: L8 l8 f
! z$ Z; {/ ]& ]* L8 k8 o( d 配置PB0、PB1为输出IO。
; x* ^4 `! w2 W# y, `2 ?4 z k 设置工程信息 6 ]5 U% n( I' U 4 \0 d! R9 e: ~. f: E
工程文件设置 & [( q! l3 f! K
SVCCTL_App_Notification SVCCTL_App_Notification函数是一个蓝牙事件处理器,用于响应和处理STM32WB BLE堆栈中发生的各种事件。 事件处理的主要内容:. H* k6 l) [4 L% K S 1.断开连接事件 (HCI_DISCONNECTION_COMPLETE_EVT_CODE)% q; a7 {! [, D4 y+ l. [& ] 2.元事件 (HCI_LE_META_EVT_CODE) 3.这部分处理了几个子事件,如HCI_LE_CONNECTION_UPDATE_COMPLETE_SUBEVT_CODE(连接更新完成)和HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE(新的连接建立完成)。 4.厂商特定调试事件 (HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE)# @+ X4 u$ ^! R4 M; D2 M' ~ “在HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE事件中,我们能够判断Bluetooth Low Energy(BLE)设备是否已成功建立了一个新的连接。相反,在HCI_DISCONNECTION_COMPLETE_EVT_CODE事件里,我们可以确认是否一个已存在的连接已经被断开。这两个事件为我们提供了监控BLE连接状态的重要手段,从而使我们能够更好地管理设备的连接生命周期。” U4 r9 |9 }! s: u+ b* z+ c" ?3 n
% q# V" t0 e& R A H 0 [2 n$ g A6 R3 H: f7 f& | 在HCI_DISCONNECTION_COMPLETE_EVT_CODE中添加一个IO翻转函数。 ; a0 N( u, J. @- S3 n( b n
结果演示 ' Y9 [$ a7 D3 C, M' ] 通过手机和STM32WB建立连接和断开连接可以查看到IO扣电平变化。% H2 }2 f# ]) T+ ?! e3 x. z
" c) }5 r" k: y/ W, C 转载自: 记帖如有侵权请联系删除 + i: N. |& S2 z p8 p5 y. O2 F * c7 Y5 w& o7 ]+ P |
低功耗蓝牙无线升级:STM32WB OTA 固件更新技术解析
STM32WB Zigbee 自定义集群开发实战:AN5491 应用笔记深度解读
吃透:STM32WB 上 Zigbee 睡眠终端设备开发攻略
STM32 无线 MCU HSE 频率与启动时间精确调谐实战指南
深度解读:STM32WB 2.4GHz 低成本 PCB 蛇形天线设计实战指南
经验分享 | STM32WB 双核无线 MCU 开发全流程实战指南
STM32WB 基于 Custom Template 实现 BLE 私有协议 实操开发指南
详解STM32单片机的堆栈
STM32单片机进行除零运算,为何程序不崩溃?
从照明到楼宇:STM32WBx5 BLE Mesh 落地指南
微信公众号
手机版