4、手机端蓝牙调试工具:常用蓝牙串口APP(如蓝牙调试器、Serial Bluetooth Terminal)的安装、配置与使用方法

在STM32机器人蓝牙控制开发中,手机端蓝牙调试工具是连接硬件与逻辑的“可视化窗口”。无论是发送控制指令、接收传感器回传数据,还是切换机器人的工作模式,都需要一个稳定、易用的蓝牙串口APP作为调试桥梁。本章将围绕两款主流工具——蓝牙调试器(Android/iOS通用)与Serial Bluetooth Terminal(Android平台经典工具),系统讲解其安装、配置、连接及实战使用方法,并针对常见连接失败、数据乱码、指令丢失等问题给出排查思路。

手机蓝牙调试工具工作链路与配置要点 手机端(主设备) 蓝牙调试器 / Serial BT UUID: 00001101-0000-1000 波特率: 9600/115200 发送: 文本/Hex/按钮 配对/连接 蓝牙SPP协议层 RFCOMM 串口仿真 数据包: 指令帧+校验 流控: 无/硬件可选 最大速率: 2.1Mbps 透传 STM32(从设备) HC-05/HM-10 模块 USART2/3 中断接收 状态机解析指令 回传: 传感器/状态 配置要点(四步闭环) ① 安装与权限 定位/蓝牙权限授予 ② 配对与连接 PIN码 1234/0000 ③ 参数匹配 波特率/数据位/停止位 ④ 数据交互 文本/Hex/按钮发送 常见问题:连接失败→检查配对/波特率;数据乱码→检查位宽/校验;指令丢失→增加帧间隔 调试技巧:先用手机自带蓝牙配对,再用APP连接;回显测试确认链路通畅

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平台为例,安装配置分为四个阶段,每个阶段都有必须检查的关键点。

阶段一:安装与权限授予

  1. 在Google Play或应用商店搜索“蓝牙调试器”或“Serial Bluetooth Terminal”,下载安装。
  2. 首次启动时,系统会弹出权限请求:定位权限(Android 6.0+必须,用于扫描蓝牙设备)、附近设备权限(Android 12+新增)、通知权限(用于后台接收数据)。必须全部允许,否则无法扫描或连接。
  3. 打开手机系统蓝牙,确保蓝牙已开启且可被发现。
风险提示:部分国产手机(如小米、华为)在“权限管理”中默认禁止“后台定位”,导致APP在锁屏后断开蓝牙连接。需在系统设置中允许该APP“始终允许定位”,并关闭电池优化白名单。

阶段二:蓝牙配对

在手机系统蓝牙设置中,搜索附近的设备,找到名为“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位

操作步骤:

  1. 在蓝牙调试器中,将显示模式设为“Hex”,发送模式设为“Hex”。
  2. 发送前进指令:AA 01 03 E8 F2(速度1000,校验=0x01+0x03+0xE8=0xEC,取低8位为0xEC,但实际计算:0x01+0x03+0xE8=0xEC,校验字节应为0xEC,此处示例为简化,实际需按协议计算)。
  3. 观察机器人是否前进,同时APP接收区应显示STM32回传的状态帧,如AA 81 00 64 0xE5(表示当前速度100)。
  4. 若机器人无反应,先检查接收区是否有数据回传:若有回传但动作不对,说明指令解析错误;若无回传,说明连接或波特率问题。
案例复盘:某次调试中,发送前进指令后机器人无动作,但APP显示已连接。排查过程:① 用USB转TTL模块直接连接STM32的USART2,发送相同指令,机器人正常动作,排除固件问题;② 检查HC-05的STATE引脚,发现LED慢闪(未连接),但APP显示已连接——原因是手机系统蓝牙先占用了SPP连接,APP实际连接的是系统蓝牙的虚拟串口,而非HC-05。解决:在手机蓝牙设置中取消配对,重新在APP内发起连接,确保APP独占SPP通道。

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发送内容对比,快速定位数据篡改或丢失问题。

经验之谈:对于初学者,建议先用“蓝牙调试器”完成基础收发,再用“Serial Bluetooth Terminal”的脚本功能实现多指令序列。例如,可以编写一个脚本:先发送“AT”确认模块在线,再发送“AA 01 03 E8 F2”前进,等待2秒后发送“AA 05 00 00 05”停止。这样能模拟真实控制逻辑,提前发现时序问题。

掌握手机蓝牙调试工具的核心不在于APP本身,而在于理解SPP协议、UART参数匹配和调试方法论。当你能熟练运用回环测试、Hex/文本切换、定时发送和日志分析时,蓝牙调试将不再是障碍,而是加速机器人开发的有力工具。