概述
STM32WB系列微控制器代表了STMicroelectronics在无线技术领域的新一代创新,集成了Bluetooth 5.0、Zigbee和Thread等多种无线通信协议。而在这些无线应用中,监测和管理连接状态显得尤为关键。确保可靠连接不仅对于数据的实时传输至关重要,而且在面对低功耗需求、设备管理和故障诊断时,都有着不可或缺的作用。
本文将深入探讨STM32WB的连接状态监测机制。我们首先会讨论为什么需要监测连接状态,然后介绍STM32WB提供的相关工具和技术。随后,我们会详细解释如何使用这些工具来实时跟踪和管理连接状态,以及如何解读和响应不同的连接状态事件。通过这些内容,读者将能够更好地理解和利用STM32WB的无线连接功能,为其应用带来更高的可靠性和效率。
硬件准备
首先需要准备一个开发板,这里我准备的是WB55RG 的开发板:
视频教学
[https://www.bilibili.com/video/BV1Km4y1M7Ti/](
样品申请
[https://www.wjx.top/vm/OhcKxJk.aspx#](
完整代码下载
[https://download.csdn.net/download/qq_24312945/88295068](
选择芯片型号
配置时钟源
HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:
配置时钟树
RTC时钟配置
RFWKP时钟配置
查看开启STM32_WPAN条件
可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。
配置HSEM
硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。
开启HSEM如下。
配置IPCC
通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。
开启如下所示。
配置RTC
启动RF
开启蓝牙
配置为自定义模板。
命名设备名
配置BLE GATT
配置SVC
LED配置
查看原理图可以得知PB0为蓝色LED,PB1为绿色LED。
配置PB0、PB1为输出IO。
设置工程信息
工程文件设置
参考文档
https://wiki.st.com/stm32mcu/wiki/Connectivity:STM32WB_HeartRate
HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE事件可以判断是否构建完成。
SVCCTL_App_Notification
SVCCTL_App_Notification函数是一个蓝牙事件处理器,用于响应和处理STM32WB BLE堆栈中发生的各种事件。
事件处理的主要内容:
断开连接事件 (HCI_DISCONNECTION_COMPLETE_EVT_CODE)
元事件 (HCI_LE_META_EVT_CODE)
这部分处理了几个子事件,如HCI_LE_CONNECTION_UPDATE_COMPLETE_SUBEVT_CODE(连接更新完成)和HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE(新的连接建立完成)。
厂商特定调试事件 (HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE)
'在HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE事件中,我们能够判断Bluetooth Low Energy(BLE)设备是否已成功建立了一个新的连接。相反,在HCI_DISCONNECTION_COMPLETE_EVT_CODE事件里,我们可以确认是否一个已存在的连接已经被断开。这两个事件为我们提供了监控BLE连接状态的重要手段,从而使我们能够更好地管理设备的连接生命周期。'
在HCI_DISCONNECTION_COMPLETE_EVT_CODE中添加一个IO翻转函数。
/* USER CODE BEGIN EVT_DISCONN_COMPLETE */
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
/* USER CODE END EVT_DISCONN_COMPLETE */
在HCI_DISCONNECTION_COMPLETE_EVT_CODE中添加一个IO翻转函数。
结果演示
通过手机和STM32WB建立连接和断开连接可以查看到IO扣电平变化。
上一篇:STM32的HAL与LL库能共同使用(混用)吗?
下一篇:在Keil中使用STM32CubeProgrammer
设计资源 培训 开发板 精华推荐
- MIC4811 的典型应用:具有 DAM 和超快速 PWM 控制的大电流 6 通道线性 WLED 驱动器
- LTC4440 的典型应用 - 高速、高电压高压侧栅极驱动器
- RY-1209S 9V、111mA输出DC/DC转换器典型应用电路
- LTC3785 的典型应用 - 10V、高效率、同步、无 RSENSE 降压-升压控制器
- 【训练营】涂鸦智WIFI插座
- Si7050 Si1133 温度传感器的典型应用
- STM32F4设计作业2
- 基于 STM32 Nucleo 的 L62xx 系列双刷直流和步进电机驱动器的评估套件环境
- 显示 A8515 LED 驱动器计算值的典型应用
- AM30EW-2412SZ 12V双输出DC/DC转换器的典型应用
- “我画你猜”变身快乐大儿童吧!
- 有奖直播:新科技、新课堂、新学期~ ADI软件定义无线电ADALM-Pluto入门实战
- 【问题征集】大学生美国TI行,你问我送礼!
- 论坛小程序上线!扫码解锁逛坛新姿势啦!!
- TI有奖直播|借助Sitara™ AM263x MCU 创造电气化的未来
- 免费申请|基于STM32H7处理器的机器视觉微控制器板OpenMV4 Cam H7
- 有奖话题:聊一聊论坛里帮助过你的网友!
- 看咱坛友自己的研讨会~ST-EEWORLD线下网友见面会实录
- 有奖学习 | 探索泰克 4 系列 BMSO 强大功能,还能参与“叠叠乐”省钱大作战!
- Mentor线上研讨会 | 教你在设计工具中进行DFM分析,轻松兼顾效率、成本和质量