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

2023-09-03 20:47:02

概述

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

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

硬件准备

首先需要准备一个开发板,这里我准备的是WB55RG 的开发板:
在这里插入图片描述

视频教学

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

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

样品申请

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堆栈中发生的各种事件。
事件处理的主要内容:

  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 */

在这里插入图片描述
在HCI_DISCONNECTION_COMPLETE_EVT_CODE中添加一个IO翻转函数。
在这里插入图片描述

结果演示

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

在这里插入图片描述

在这里插入图片描述

更多推荐

Jmeter系列-定时器Timers的基本介绍(11)

简介JMeter中的定时器(Timer)是一种重要的元件,用于模拟用户在不同时间间隔内发送请求的场景。通过使用定时器,可以模拟负载、并发和容量等不同情况下的请求发送频率。使用定时器可以在取样器下添加定时器,这样定时器只会作用于当前取样器也可以在线程组下添加多个定时器,统计定时器的总和,然后作用于线程组下的所有取样器定时

Android studio 快捷键

目录Ctrl+N搜索指定的Java类Ctrl+F查找文本Alt+Enter修复代码错误Ctrl+Alt+L格式化代码Ctrl+D复制当前行或选中的内容Ctrl+W逐渐增加当前选中的范围Ctrl+Shift+-折叠所有代码Ctrl+Shift++展开所有代码Ctrl+B查看定义Ctrl+Alt+B查看实现Ctrl+Alt

系统架构设计师(第二版)学习笔记----信息系统基础

【原文链接】系统架构设计师(第二版)学习笔记----信息系统基础文章目录一、信息系统概述1.1信息系统的5个基本功能1.2信息系统发展阶段1.3初始阶段的主要特点1.4传播阶段的主要特点1.5控制阶段的主要特点1.6集成阶段的主要特点1.7信息系统的种类1.8企业主要使用的信息化系统1.9信息系统的生命周期阶段1.10

第一章:最新版零基础学习 PYTHON 教程(第三节 - 下载并安装Python最新版本)

在这里,我们将讨论如何获得与在Windows/Linux/macOS上安装Python相关的所有问题的答案。Python由GuidovanRossum于20世纪90年代初开发,最新版本为3.11,我们可以简称为Python3。如何下载并安装Python?要了解如何安装Python,您需要了解Python是什么以及它实际

实时多人关键点检测系统:OpenPose | 开源日报 0907

CMU-Perceptual-Computing-Lab/openposeStars:27.9kLicense:NOASSERTIONOpenPose是一个开源项目,它是第一个能够在单个图像上联合检测人体、手部、面部和脚步关键点(总共135个关键点)的实时多人系统。该项目具有以下核心优势:2D实时多人关键点检测功能支持

PyTorch深度学习实战(11)——卷积神经网络

PyTorch深度学习实战(11)——卷积神经网络0.前言1.全连接网络的缺陷2.卷积神经网络基本组件2.1卷积2.2步幅和填充2.3池化2.3卷积神经网络完整流程3.卷积和池化相比全连接网络的优势4.使用PyTorch构建卷积神经网络4.1使用PyTorch构建CNN架构4.2验证CNN输出小结系列链接0.前言卷积神

数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC...

全文链接:http://tecdat.cn/?p=27384在本文中,数据包含有关葡萄牙“VinhoVerde”葡萄酒的信息(点击文末“阅读原文”获取完整代码数据)。介绍该数据集(查看文末了解数据获取方式)有1599个观测值和12个变量,分别是固定酸度、挥发性酸度、柠檬酸、残糖、氯化物、游离二氧化硫、总二氧化硫、密度、

【运维篇】二、配置文件与多环境控制

文章目录1、临时属性2、IDEA中的临时属性3、配置文件4级分类4、关于四级分类的思考5、自定义配置文件6、多环境开发(yaml版)7、配置文件按环境分类8、include与group再细粒度9、一点思考10、多环境开发兼容问题1、临时属性jar包或者镜像已经打完了,想修改下服务的配置,如何实现?⇒临时属性如修改服务的

JavaScript深入理解JSON.stringify

🎬岸边的风:个人主页🔥个人专栏:《VUE》《javaScript》⛺️生活的理想,就是为了理想的生活!目录引言1.JSON.stringify()属性replacerspacetoJSON2.应用场景数据传输数据存储日志记录数据展示3.完整优雅的实现4.注意事项循环引用特殊类型性能优化总结引言在JavaScript

Android编译snowboy

一、Ubuntu安装git1.打开终端在Ubuntu系统中,我们可以使用终端输入命令进行操作。打开终端的快捷键为Ctrl+Alt+T。2.安装Git在终端中输入以下命令,即可开始安装Git。sudoapt-getinstallgit登录后复制安装过程中需要输入管理员密码,安装完成后,终端会输出Git的版本号等信息。3.

将近 5 万字讲解 Python Django 框架详细知识点(更新中)

Django框架基本概述Django是一个开源的Web应用后端框架,由Python编写。它采用了MVC的软件设计模式,即模型(Model)、视图(View)和控制器(Controller)。在Django框架中,模型层负责与数据库交互,进行数据的增、删、改、查等操作。视图层用于封装结果,生成页面展示的HTML内容。控制

热文推荐