这是一个基于 NXP FRDM-RW612 开发板的低功耗蓝牙(BLE)外设项目,实现了健康体温计(Health Thermometer)服务和 GPIO 按键功能。项目结合了 FreeRTOS 实时操作系统,支持多任务并行处理,具有低功耗优化功能。
开发板: NXP FRDM-RW612


主控芯片: RW612 微控制器


主要外设: 板载按键(SW2)用于输入;低功耗板载蓝牙,用于与手机通信


三、整体设计思路/功能效果
具体过程见过程贴,下面简单概括:
系统初始化阶段首先完成硬件初始化(引脚复用、时钟配置、调试串口)确保基本的硬件功能可用,为后续任务执行打下基础
多任务架构设计采用 FreeRTOS 实时操作系统管理多个并发任务将蓝牙功能和按键检测功能分离到不同任务中,实现功能解耦通过任务优先级和调度机制确保系统响应性
蓝牙服务实现实现标准的健康体温计服务(HTS)通过 GATT 服务提供温度数据使用通知机制向连接的设备发送温度数据
输入检测机制利用 GPIO 中断检测按键状态变化在单独的任务中处理按键事件,避免阻塞其他功能维护按键状态和计数器变量
数据处理与交互温度数据采用小端字节序格式化,确保蓝牙协议兼容性通过全局变量在不同任务间共享状态信息串口输出用于调试和状态监控
四、具体实现情况
蓝牙健康体温计服务(HTS)实现标准的蓝牙健康体温计服务模拟温度数据生成(20°C 到 25°C 循环变化)支持温度类型标识通过 GATT 服务提供温度数据通知
GPIO 按键检测检测板载按键(SW2)的状态变化使用中断方式响应按键事件记录按键按下次数通过串口输出按键状态
多任务架构peripheral_ht_task: 处理蓝牙健康体温计服务sw_task: 处理按键检测和状态监控使用 FreeRTOS 进行任务调度和同步
五、关键代码介绍
见过程贴。
六、功能展示
按下按键,串口打印log:

连接蓝牙,订阅notify后,开始上报按键状态:一个代表当前按键状态,另一个代表按下次数

手机上位机显示:
视频展示:
七、技术难点与解决方案/心得体会
我要赚赏金
