当前位置: 首页 > news >正文

[STM32WBA] 【NUCLEO-WBA65RI 测评】+心率传感器应用以及调试出现问题解决

心率传感器应用
心率收集过程如图:


心率配置文件包含两项操作:
— 收集器:GAP 中央设备和 GATT 客户端接收心率测量值和其他数据
— 心率传感器:GAP 外设和 GATT 服务器提供心率测量值和其他数据。


在官方提供的实例中:


在 Middlewares\STM32_WPAN\ble\core\Src\中,用于插入 BLE 服务的子文件夹为 blesvc。
— svc_ctl.c:初始化 BLE 协议栈并管理应用服务(GATT 事件)
— hrs.c:用于创建:
应用的服务及其特征,
更新服务特征,
接收通知或写指令,以及
在 BLE 协议栈与应用部分之间建立链接。
对于应用,用于创建特定代码的子文件夹为 STM32_WPAN\app
— app_entry.c:初始化 BLE 传输层和 BSP(例如 LED 和按钮)
— app_ble.c:初始化 GAP 并管理连接(例如广播和扫描)
— hrs_app.c:初始化 GATT 并管理应用
心率服务函数:
Middlewares\STM32_WPAN\ble\core\Src\blesvc\hrs.c


服务控制器函数:
Middlewares\STM32_WPAN\ble\core\Src\blesvc\svc_ctl.c
SVCCTL_Init()具有不同功能:
— 调用所有已开发服务的初始化函数
‒ HR 服务器 - HRS_Init()
— 注册服务事件处理函数
‒ SVCCTL_RegisterSvcHandler()
‒ 从 svc_ctl.c 接收 GATT 事件并将其重定向至应用的函数(hrs_app.c)
— 注册客户端事件处理函数(不适用于 HR 传感器项目)
‒ SVCCTL_RegisterCltHandler()
HR 传感器应用初始化:
Applications\BLE\BLE_HeartRate\STM32_WPAN\App\app_ble.c
心率传感器外设初始化 - APP_BLE_Init()
— 初始化 CPU2 上的 BLE 协议栈
‒ SHCI_C2_BLE_Init()
— 初始化 HCI、GATT 和 GAP 层
‒ Ble_Hci_Gap_Gatt_Init()
— 初始化 BLE 服务
‒ SVCCTL_Init()
— 调用心率服务器和设备信息应用初始化
‒ HRSAPP_Init()
‒ DISAPP_Init()
— 配置并启动广播:ADV 参数,本地名称,UUID…
‒ aci_gap_set_discoverable() - 将设备设置为一般可发现模式
‒ aci_gap_update_adv_data() - 在广播数据包添加信息
— 管理 GAP 事件 - SVCCTL_App_Notification()
‒ EVT_LE_CONN_COMPLETE
提供连接间隔 信息、从设备延迟和监控超时
— 提供新的连接信息
‒ EVT_LE_CONN_UPDATE_COMPLETE
— 将链路断开及其原因通知应用
‒ EVT_DISCONN_COMPLETE
— 通知应用链路是否加密
‒ EVT_ENCRYPT_CHANGE
心率传感器应用控制:
Applications\BLE\BLE_HeartRate\STM32_WPAN\App\hrs_app.c
hrs_app.c 文件初始化传感器应用,创建定时器
心率传感器应用控制



手机使用ST的BLE Toolbox 蓝牙调试APP安卓版,程序下载后搜索蓝牙




在调试完成之后发现stlink不能下载程序了,据了解是因为设置成了低功耗模式,在网上找了一种方法解决STM32 芯片锁死:



接着按住复位按键,或短接复位脚电容,点击下载,若弹出对话框点击No,恢复复位
若还不行,继续工程设置,重复前面两个步骤,最后终于出现如下界面:





---------------------
作者:wuyu40
链接:https://bbs.21ic.com/icview-3500411-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

http://www.jsqmd.com/news/465800/

相关文章:

  • 349. Java IO API - Java 文件操作:java.io.File 与 java.nio.file 功能对比 - 1
  • 《Mybatis》第11章 总结与展望
  • [STM32WBA] 【NUCLEO-WBA65RI 测评】+Android端进行蓝牙OTA升级
  • LLM时代的攻防利刃:从入门到精通高仿真钓鱼内容生成
  • es6.8快照备份恢复到es7.17
  • Python基于flask+uniapp微信小程序的同城钓鱼垂钓社交的论坛交流设计与开发
  • 一文读懂软件著作权(软著):从保护到申请,全方位指南!
  • 自动化社工剧本引擎:利用 AI 模拟合法客服、技术支持与高管对话
  • 数据、算法、场景:拆解营销智能体的“三重内核”
  • 计算机毕业设计java基于web的仓库货物管理系统 基于B/S架构的仓储库存信息化管理系统 面向多角色的仓库物资进销存管理平台
  • 2026四川移动洗车槽出租、沉淀池租赁、拉森铺路钢板出租公司推荐,蜀鑫诚800+项目验证能力 - 深度智识库
  • 毕设程序java博物馆预约管理系统 基于SpringBoot的文博场馆智能票务预约平台 文化遗产数字化参观预约服务平台
  • 计算机毕业设计java基于vue与spring的药品销售管理系统设计与实现 基于VUE+SpringBoot的医药商品进销存管理系统 面向连锁药店的VUE与Spring框架药品流通管理平台
  • 网站php think run 启动成功,但网站无法访问错误怎么办|已解决
  • 计算机毕业设计java基于webFaceBox社交圈子 基于微信小程序的校园社交与闲置交易平台 FaceBox校园社交圈子小程序设计与实现
  • 分享一个学习类智能体的人设 - -星语
  • 毕设程序java博主网上招聘系统 自媒体人才供需对接平台 网红博主在线求职与品牌合作系统
  • 博客课后作业要求
  • 毕设程序java博雅养老院管理系统 基于SpringBoot的养老机构数字化运营系统 面向现代化养老院的Java Web信息化管理平台
  • 阿里二面:明明加了索引,查询为什么还是慢?90%的候选人答不到点上
  • 面试官:大模型是怎么调用工具的呢 ?
  • 网站部署后提示“Class think\App not found”错误怎么办|已解决
  • 面字节差点挂在这道Redis锁上:为什么 setnx 不能直接做分布式锁?
  • C# 中值类型和引用类型的主要区别是什么
  • oracle 26ai 创建的默认表空间竟然是big - a
  • FOC滑膜观测器(SMO+PLL)Matlab 2021b模型实现:零速闭环启动与硬件开环启动...
  • 网站生成页面空白/中断排查|已解决
  • 线程、进程、协程的区别是什么?
  • MySQL面试必问:存储用户密码,char还是varchar?答案出乎意料!
  • 腾讯面试必杀题:JDK 7 和 8 的 ConcurrentHashMap 对比,回答好这一题直接定级P6