4、手机端蓝牙调试工具:常用蓝牙串口APP(如蓝牙调试器、Serial Bluetooth Terminal)的安装、配置与使用方法
在STM32机器人蓝牙控制开发中,手机端蓝牙调试工具是连接硬件与逻辑的“可视化窗口”。无论是发送控制指令、接收传感器回传数据,还是切换机器人的工作模式,都需要一个稳定、易用的蓝牙串口APP作为调试桥梁。本章将围绕两款主流工具——蓝牙调试器(Android/iOS通用)与Serial Bluetooth Terminal(Android平台经典工具),系统讲解其安装、配置、连接及实战使用方法,并针对常见连接失败、数据乱码、指令丢失等问题给出排查思路。
4.1 蓝牙调试工具的核心原理与选型依据
手机蓝牙调试APP的本质是SPP(Serial Port Profile)协议的客户端实现。STM32机器人通常外接HC-05(经典蓝牙)或HM-10(BLE 4.0)模块,模块在固件中注册为从设备,手机APP作为主设备发起配对和连接。连接建立后,APP将手机侧收到的字符串或十六进制数据通过RFCOMM通道透传到模块的UART引脚,STM32的串口中断即可接收;反向数据同理,STM32通过UART发送的数据会原样出现在手机APP的接收区。
选型时需考虑三个维度:操作系统兼容性(Android/iOS)、协议支持(经典蓝牙SPP vs BLE)、调试功能丰富度。蓝牙调试器(Bluetooth Debugger)支持Android和iOS双平台,界面简洁,适合快速收发测试;Serial Bluetooth Terminal仅支持Android,但提供脚本化发送、定时发送、数据日志导出等高级功能,适合复杂指令序列调试。若使用HM-10等BLE模块,需选择支持BLE的APP(如nRF Connect),但本章以经典蓝牙SPP为主,故重点介绍前两款。
4.2 安装与配置流程:从零到可用的完整步骤
以Android平台为例,安装配置分为四个阶段,每个阶段都有必须检查的关键点。
阶段一:安装与权限授予
- 在Google Play或应用商店搜索“蓝牙调试器”或“Serial Bluetooth Terminal”,下载安装。
- 首次启动时,系统会弹出权限请求:定位权限(Android 6.0+必须,用于扫描蓝牙设备)、附近设备权限(Android 12+新增)、通知权限(用于后台接收数据)。必须全部允许,否则无法扫描或连接。
- 打开手机系统蓝牙,确保蓝牙已开启且可被发现。
阶段二:蓝牙配对
在手机系统蓝牙设置中,搜索附近的设备,找到名为“HC-05”或“HC-06”的设备(默认名称可修改),点击配对。默认PIN码为1234或0000。配对成功后,系统会显示“已配对”状态。注意:配对不等于连接,APP仍需主动发起连接。
阶段三:APP内参数配置
打开蓝牙调试器,进入“设备列表”页,点击已配对的HC-05设备,APP会尝试连接。连接成功后,进入主界面,需配置以下参数:
| 参数项 | 推荐值 | 说明 |
|---|---|---|
| 波特率(Baud Rate) | 9600 或 115200 | 必须与STM32的USART初始化一致,否则数据乱码 |
| 数据位(Data Bits) | 8 | 标准UART配置 |
| 停止位(Stop Bits) | 1 | 标准UART配置 |
| 校验位(Parity) | None | 无校验,与STM32默认一致 |
| 显示模式 | 文本(Text)或 Hex | 调试初期建议用Hex,便于观察原始字节 |
Serial Bluetooth Terminal的配置路径为:菜单 → Settings → Device Settings,在已连接设备下修改波特率等参数。修改后需断开重连才能生效。
阶段四:连接与回环测试
配置完成后,点击“连接”按钮。若连接成功,APP状态栏显示“Connected”。此时进行回环测试:在发送区输入“AT”(HC-05的AT指令),若模块返回“OK”,说明链路通畅。若使用STM32,可先烧录一个简单的回环程序(将接收到的字节原样发送),在APP发送任意字符,观察是否回显。
4.3 实战场景:用蓝牙调试器控制STM32机器人运动
假设我们有一个两轮差速机器人,STM32通过USART2连接HC-05,波特率115200。机器人固件定义了如下指令协议:
指令格式:帧头(0xAA) + 命令字(1字节) + 数据(2字节) + 校验(1字节)
命令字:0x01=前进,0x02=后退,0x03=左转,0x04=右转,0x05=停止
数据:速度值(0-1000),高字节在前
校验:命令字+数据高字节+数据低字节 的累加和取低8位
操作步骤:
- 在蓝牙调试器中,将显示模式设为“Hex”,发送模式设为“Hex”。
- 发送前进指令:
AA 01 03 E8 F2(速度1000,校验=0x01+0x03+0xE8=0xEC,取低8位为0xEC,但实际计算:0x01+0x03+0xE8=0xEC,校验字节应为0xEC,此处示例为简化,实际需按协议计算)。 - 观察机器人是否前进,同时APP接收区应显示STM32回传的状态帧,如
AA 81 00 64 0xE5(表示当前速度100)。 - 若机器人无反应,先检查接收区是否有数据回传:若有回传但动作不对,说明指令解析错误;若无回传,说明连接或波特率问题。
4.4 常见误区与调试技巧总结
通过大量项目实践,以下问题出现频率最高,需特别注意:
- 误区一:配对成功即认为连接成功。配对只是安全认证,APP必须主动发起RFCOMM连接。若APP显示“连接失败”,先检查HC-05是否被其他设备占用(如手机系统蓝牙)。
- 误区二:波特率随意设置。HC-05默认波特率是9600,但很多STM32例程使用115200。若模块未重新配置,两者不匹配会导致乱码。可用AT指令
AT+UART=115200,0,0修改模块波特率。 - 误区三:忽略帧间隔。蓝牙透传存在延迟(约10-20ms),连续发送多条指令时,STM32可能来不及处理。建议在APP中设置“行尾延迟”或“发送间隔”为50ms以上。
- 误区四:使用BLE模块却用SPP工具。HM-10等BLE模块不支持经典蓝牙SPP,必须使用支持BLE的APP(如nRF Connect或LightBlue)。
调试技巧:① 善用“定时发送”功能,可周期性发送状态查询指令,验证链路稳定性;② 使用“日志导出”功能,将收发数据保存为CSV文件,便于离线分析;③ 在STM32固件中增加调试打印,将接收到的原始字节通过另一个串口输出到PC,与APP发送内容对比,快速定位数据篡改或丢失问题。
掌握手机蓝牙调试工具的核心不在于APP本身,而在于理解SPP协议、UART参数匹配和调试方法论。当你能熟练运用回环测试、Hex/文本切换、定时发送和日志分析时,蓝牙调试将不再是障碍,而是加速机器人开发的有力工具。