STM32WB55开发(1)----监测STM32WB连接状态

STM32WB55开发----1.监测STM32WB连接状态

  • 概述
  • 硬件准备
  • 视频教学
  • 样品申请
  • 选择芯片型号
  • 配置时钟源
  • 配置时钟树
  • RTC时钟配置
  • 查看开启STM32_WPAN条件
  • 配置HSEM
  • 配置IPCC
  • 配置RTC
  • 启动RF
  • 开启蓝牙
  • LED配置
  • 设置工程信息
  • 工程文件设置
  • 参考文档
  • SVCCTL_App_Notification
  • 结果演示

概述

STM32WB系列微控制器代表了STMicroelectronics在无线技术领域的新一代创新,集成了Bluetooth 5.0、Zigbee和Thread等多种无线通信协议。而在这些无线应用中,监测和管理连接状态显得尤为关键。确保可靠连接不仅对于数据的实时传输至关重要,而且在面对低功耗需求、设备管理和故障诊断时,都有着不可或缺的作用。

本文将深入探讨STM32WB的连接状态监测机制。我们首先会讨论为什么需要监测连接状态,然后介绍STM32WB提供的相关工具和技术。随后,我们会详细解释如何使用这些工具来实时跟踪和管理连接状态,以及如何解读和响应不同的连接状态事件。通过这些内容,读者将能够更好地理解和利用STM32WB的无线连接功能,为其应用带来更高的可靠性和效率。
最近在弄ST和瑞萨RA的课程,需要样片的可以加群申请:615061293 。

硬件准备

首先需要准备一个开发板,这里我准备的是WB55RG 的开发板:
STM32WB55开发(1)----监测STM32WB连接状态_第1张图片

视频教学

https://www.bilibili.com/video/BV1Km4y1M7Ti/

STM32WB55开发(1)----监测STM32WB连接状态

样品申请

https://www.wjx.top/vm/OhcKxJk.aspx#

选择芯片型号

STM32WB55开发(1)----监测STM32WB连接状态_第2张图片

配置时钟源

HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:
STM32WB55开发(1)----监测STM32WB连接状态_第3张图片

配置时钟树

STM32WB55开发(1)----监测STM32WB连接状态_第4张图片

RTC时钟配置

STM32WB55开发(1)----监测STM32WB连接状态_第5张图片
RFWKP时钟配置

STM32WB55开发(1)----监测STM32WB连接状态_第6张图片

查看开启STM32_WPAN条件

可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。
STM32WB55开发(1)----监测STM32WB连接状态_第7张图片

配置HSEM

硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。
开启HSEM如下。
STM32WB55开发(1)----监测STM32WB连接状态_第8张图片

配置IPCC

通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。
开启如下所示。

STM32WB55开发(1)----监测STM32WB连接状态_第9张图片

配置RTC

STM32WB55开发(1)----监测STM32WB连接状态_第10张图片

启动RF

STM32WB55开发(1)----监测STM32WB连接状态_第11张图片

开启蓝牙

STM32WB55开发(1)----监测STM32WB连接状态_第12张图片

配置为自定义模板。
STM32WB55开发(1)----监测STM32WB连接状态_第13张图片

命名设备名

STM32WB55开发(1)----监测STM32WB连接状态_第14张图片

配置BLE GATT

STM32WB55开发(1)----监测STM32WB连接状态_第15张图片

配置SVC
STM32WB55开发(1)----监测STM32WB连接状态_第16张图片

LED配置

查看原理图可以得知PB0为蓝色LED,PB1为绿色LED。

STM32WB55开发(1)----监测STM32WB连接状态_第17张图片

配置PB0、PB1为输出IO。

STM32WB55开发(1)----监测STM32WB连接状态_第18张图片

设置工程信息

STM32WB55开发(1)----监测STM32WB连接状态_第19张图片

工程文件设置

STM32WB55开发(1)----监测STM32WB连接状态_第20张图片

参考文档

https://wiki.st.com/stm32mcu/wiki/Connectivity:STM32WB_HeartRate
HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE事件可以判断是否构建完成。

STM32WB55开发(1)----监测STM32WB连接状态_第21张图片

SVCCTL_App_Notification

SVCCTL_App_Notification函数是一个蓝牙事件处理器,用于响应和处理STM32WB BLE堆栈中发生的各种事件。
事件处理的主要内容:

  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(新的连接建立完成)。
  4. 厂商特定调试事件 (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 */

STM32WB55开发(1)----监测STM32WB连接状态_第22张图片
在HCI_DISCONNECTION_COMPLETE_EVT_CODE中添加一个IO翻转函数。
STM32WB55开发(1)----监测STM32WB连接状态_第23张图片

结果演示

通过手机和STM32WB建立连接和断开连接可以查看到IO扣电平变化。

STM32WB55开发(1)----监测STM32WB连接状态_第24张图片

STM32WB55开发(1)----监测STM32WB连接状态_第25张图片

你可能感兴趣的:(单片机,stm32cube,#stm32wb,STM32CUBEMX,STM32WB,蓝牙,BLE,zigbee,STM32WB55)