|
套件概述 STM32WB系列微控制器代表了STMicroelectronics在无线技术领域的新一代创新,集成了Bluetooth 5.0、Zigbee和Thread等多种无线通信协议。而在这些无线应用中,监测和管理连接状态显得尤为关键。确保可靠连接不仅对于数据的实时传输至关重要,而且在面对低功耗需求、设备管理和故障诊断时,都有着不可或缺的作用。 8 |( P6 Z$ |8 F% M, G9 s 本文将深入探讨STM32WB的连接状态监测机制。我们首先会讨论为什么需要监测连接状态,然后介绍STM32WB提供的相关工具和技术。随后,我们会详细解释如何使用这些工具来实时跟踪和管理连接状态,以及如何解读和响应不同的连接状态事件。通过这些内容,读者将能够更好地理解和利用STM32WB的无线连接功能,为其应用带来更高的可靠性和效率。
/ p! Q( H) v% A5 d 8 Z! ~( K, l4 z3 l ? 选择芯片型号 - h9 I, K d; j6 m4 F2 `
配置时钟源 HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:0 Q+ T0 p0 p' f . d" o( W3 l$ A6 u, l
3 g: s$ U4 D2 H" R7 p7 }% `' s! y 配置时钟树
0 i6 L/ L+ ^* X RTC时钟配置 * d0 X& J8 c4 f+ x9 H* d/ ~# j
RFWKP时钟配置7 g" x, N' V& P : L$ [6 P6 L, }. U% X, s
查看开启STM32_WPAN条件 可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。 0 b7 O# f D. I& i |
3 `1 _1 h6 k( ~- T& e x* z0 F 配置HSEM 硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。" u( w; V# \* M- b$ C; V 开启HSEM如下。
配置IPCC 8 O" C+ U( c# {& v 通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。2 y5 d" i9 Q8 K( P8 R& h: p 开启如下所示。; s5 Y( q' B7 e( L; d
% G9 Q, q5 R$ c- ]/ e) m6 A: ` 配置RTC
启动RF : u& N; p6 H- Z$ F
开启蓝牙 1 A. w+ |0 `" |; W( e6 ` 8 G% ]# f4 g( v6 f2 N( B
配置为自定义模板。
3 z- u5 X$ k) R4 t 命名设备名 4 x! B; r1 O3 _
/ |* i" t6 K; [8 r+ k; y; h0 \ 配置BLE GATT
, b% M- h. U' j7 ~ 配置SVC; E& |' \+ ^* J
LED配置 ' n. u8 T7 I$ D5 j4 g 查看原理图可以得知PB0为蓝色LED,PB1为绿色LED。! W9 V# h6 f+ p' E P8 ~ o, E3 m) h8 z/ ]
配置PB0、PB1为输出IO。5 I! f" E5 Q1 m ; a9 e3 s, S0 O& F+ Y }2 T2 w1 I
设置工程信息
工程文件设置 ! Y. X" |0 U# i' f / W. @9 v4 S& F$ L* r+ c! j" [
SVCCTL_App_Notification SVCCTL_App_Notification函数是一个蓝牙事件处理器,用于响应和处理STM32WB BLE堆栈中发生的各种事件。 事件处理的主要内容: 1.断开连接事件 (HCI_DISCONNECTION_COMPLETE_EVT_CODE)% f& d# |' [( Q: X- m 2.元事件 (HCI_LE_META_EVT_CODE) 3.这部分处理了几个子事件,如HCI_LE_CONNECTION_UPDATE_COMPLETE_SUBEVT_CODE(连接更新完成)和HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE(新的连接建立完成)。. b4 z" {' {" J4 x4 B0 R 4.厂商特定调试事件 (HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE)2 O9 P- _5 L- B/ E) X& F! D& Z1 |9 A “在HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE事件中,我们能够判断Bluetooth Low Energy(BLE)设备是否已成功建立了一个新的连接。相反,在HCI_DISCONNECTION_COMPLETE_EVT_CODE事件里,我们可以确认是否一个已存在的连接已经被断开。这两个事件为我们提供了监控BLE连接状态的重要手段,从而使我们能够更好地管理设备的连接生命周期。”, c( g7 M5 ?0 ~7 K 0 [8 h1 e, ~" U4 V9 W
3 _% c! \2 O! q; S* L* N, f( o 在HCI_DISCONNECTION_COMPLETE_EVT_CODE中添加一个IO翻转函数。) M4 [/ P7 v9 F/ | S$ [6 j 4 ` w, P/ j* P- t+ ~
8 r$ B) L( Q* W" P+ L: D 结果演示 通过手机和STM32WB建立连接和断开连接可以查看到IO扣电平变化。 5 p# S. b j% k( w9 h. e) y/ K
+ M, u/ ~* L4 [6 P5 d5 R, D! C7 A0 P" s6 r
8 X5 Z$ T# q+ ~5 G 转载自: 记帖如有侵权请联系删除( U1 }4 D9 r$ R : {0 E: W: E5 u# I& }8 N ; X7 ?) U# m5 l) 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 落地指南
微信公众号
手机版