您的位置:首页 > 汽车 > 新车 > 八戒八戒在线观看免费完整版_crm企业管理系统_今日最新消息新闻报道_免费外链生成器

八戒八戒在线观看免费完整版_crm企业管理系统_今日最新消息新闻报道_免费外链生成器

2024/12/23 7:15:36 来源:https://blog.csdn.net/qq_24312945/article/details/144017115  浏览:    关键词:八戒八戒在线观看免费完整版_crm企业管理系统_今日最新消息新闻报道_免费外链生成器
八戒八戒在线观看免费完整版_crm企业管理系统_今日最新消息新闻报道_免费外链生成器

STM32WB55RG开发----5.生成 BLE 程序连接手机APP

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

概述

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

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

最近在弄ST的教程,需要样片的可以加群申请:615061293/925643491 。

硬件准备

首先需要准备一个开发板,这里我准备的是自己绘制的开发板,需要的可以进行申请。
主控为STM32WB55RGV6

在这里插入图片描述

视频教学

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

STM32WB55RG开发(5)----监测STM32WB连接状态

样品申请

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

源码下载

参考程序

https://github.com/CoreMaker-lab/STM32WB55_SENSOR

https://gitee.com/CoreMaker/STM32WB55_SENSOR

选择芯片型号

在这里插入图片描述

配置时钟源

HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:

在这里插入图片描述

配置时钟树

在这里插入图片描述

RTC时钟配置

在这里插入图片描述

RF wakeup时钟配置

在这里插入图片描述

查看开启STM32_WPAN条件

可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。

在这里插入图片描述

配置HSEM

硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。

在这里插入图片描述

资料下载链接:https://www.stmcu.jp/wp/wp-content/uploads/files/presentation-ja/STM32WB/17_STM32WB-System-Hardware-Semaphore-(HSEM)_J.pdf

开启HSEM如下。

在这里插入图片描述

配置IPCC

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

在这里插入图片描述

资料下载链接:https://www.st.com/content/ccc/resource/training/technical/product_training/group0/d3/17/dc/8a/bf/ef/4f/10/STM32WB-System-Inter-Processor-communication-controller-IPCC/files/STM32WB-System-Inter-Processor-communication-controller-IPCC.pdf/jcr:content/translations/en.STM32WB-System-Inter-Processor-communication-controller-IPCC.pdf

开启如下所示。

在这里插入图片描述

配置RTC

在这里插入图片描述

启动RF

在这里插入图片描述

开启蓝牙

在这里插入图片描述

配置为自定义模板。

在这里插入图片描述

命名设备名,输入myDevice

在这里插入图片描述

配置BLE GATT,输入mySVC

在这里插入图片描述

配置mySVC,输入myCharWrite

在这里插入图片描述

LED配置

查看原理图,对应LED分别为PB0,PB1,PB5。

在这里插入图片描述

配置如下所示。

在这里插入图片描述

设置工程信息

在这里插入图片描述

工程文件设置

在这里插入图片描述

参考文档

下图展示了 BLE 协议栈中的事件回调函数 以及这些事件的作用和触发位置,特别是在处理 BLE 应用中的 ACI 事件时,用户可以选择两种不同的方法来处理事件:

  1. 使用“switch case”事件处理程序
  2. 使用事件回调框架

图中列出了几个主要事件回调:
● hci_disconnection_complete_event():连接结束事件,适用于 GAP 中的中央设备或外设。
● hci_le_connection_complete_event():建立连接完成事件,表示两个设备之间的连接成功建立,适用于 GAP 中的中央设备或外设。
● aci_gatt_attribute_modified_event():当 GATT 客户端修改了服务器端的某个属性时,服务器端会触发该事件,适用于 GATT 的服务器端。
● aci_gatt_notification_event():当 GATT 服务器端发送通知给客户端时,在客户端生成该事件,适用于 GATT 的客户端。
● aci_gatt_indication_event():当 GATT 服务器端向客户端发送指示(Indication)时,在客户端生成该事件,适用于 GATT 客户端。
● aci_gap_pass_key_req_event():在配对过程中需要提供密钥时触发,安全管理器应用层应在接收到事件后调用 aci_gap_pass_key_resp() 进行密钥的反馈,适用于 GAP 中的中央设备或外设。
● aci_gap_pairing_complete_event():配对过程成功或失败后触发,适用于 GAP 中的中央设备或外设。
● aci_gap_bond_lost_event():当设备的绑定关系丢失时触发,通常是由于远端设备删除了绑定信息。应用层在接收到该事件后,可以调用 aci_gap_allow_rebond() 以允许设备重新绑定,适用于 GAP 外设。
● aci_att_read_by_group_type_resp_event():当客户端请求读取组类型时,返回包含符合读取条件的属性句柄和类型的响应,适用于 GATT 客户端。
● aci_att_read_by_type_resp_event():当客户端请求读取指定类型的属性时,返回包含符合读取条件的属性值和类型的响应,适用于 GATT 客户端。
● aci_gatt_proc_complete_event():表示 GATT 流程已完成,适用于 GATT 客户端。
● hci_le_advertising_report_event():在扫描过程中发现设备时触发,报告扫描到的设备信息,适用于 GAP 中的中央设备。

这些事件为 BLE 应用中的配对、绑定、安全管理和 GATT 操作提供了重要的反馈机制。开发者可以通过这些事件在应用层实现相应的业务逻辑。

在这里插入图片描述

在这里插入图片描述

SVCCTL_App_Notification

SVCCTL_App_Notification函数是一个蓝牙事件处理器,用于响应和处理STM32WB BLE堆栈中发生的各种事件。
该代码实现了一个 BLE 事件回调函数 SVCCTL_App_Notification,用于处理 STM32WB BLE 应用中的各种 BLE 事件。主要逻辑分为以下几个部分:

  1. 断开连接事件 (HCI_DISCONNECTION_COMPLETE_EVT_CODE):
    ○ 当连接断开时触发该事件。
  2. 连接事件 (HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE):
    ○ 当 BLE 连接成功建立时触发该事件。
  3. 连接更新事件 (HCI_LE_CONNECTION_UPDATE_COMPLETE_SUBEVT_CODE):
    ○ 当连接参数更新完成时触发,打印更新后的连接参数。
  4. 厂商特定事件 (HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE):
    ○ 处理各种 GAP 和 GATT 相关的自定义事件:
    ■ 按键通知 (ACI_GAP_KEYPRESS_NOTIFICATION_VSEVT_CODE)
    ■ 密码请求 (ACI_GAP_PASS_KEY_REQ_VSEVT_CODE):当需要密码时,通过调用 aci_gap_pass_key_resp 提供固定的 PIN。
    ■ 数字比较 (ACI_GAP_NUMERIC_COMPARISON_VALUE_VSEVT_CODE):进行数字比较并确认。
    ■ 配对完成 (ACI_GAP_PAIRING_COMPLETE_VSEVT_CODE):检查配对状态并打印结果。
    ■ GATT 指示 (ACI_GATT_INDICATION_VSEVT_CODE):当服务器发送指示时,确认接收。

在HCI_DISCONNECTION_COMPLETE_EVT_CODE中添加一个LED控制函数。

          /* USER CODE BEGIN HCI_EVT_LE_CONN_COMPLETE */HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET);/* USER CODE END HCI_EVT_LE_CONN_COMPLETE */

在这里插入图片描述

在HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE中添加一个LED控制函数。

          /* USER CODE BEGIN HCI_EVT_LE_CONN_COMPLETE */HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET);/* USER CODE END HCI_EVT_LE_CONN_COMPLETE */

在这里插入图片描述

在主程序中添加LED初始化程序。

在这里插入图片描述

  /* USER CODE BEGIN 2 */HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET);/* USER CODE END 2 */

结果演示

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

在这里插入图片描述

连接上LED1亮灯,LED2灭灯。

在这里插入图片描述

断开蓝牙链接。

在这里插入图片描述

连接上LED1灭灯,LED2亮灯。

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com