最近好几个做硬件的朋友问我,手机端调试蓝牙设备用啥工具方便,我基本都推BLE调试宝。这玩意儿上手门槛低,装完就能扫设备、看服务、收发数据,比自己写个demo快多了。不过用久了也发现,很多人卡在一些小细节上,比如搜不到设备、写特征值没反应、通知收不到数据。下面就把我这段时间用BLE调试宝的实际经验整理一下,顺带把常见问题挨个说清楚,新手照着排查基本能解决大半。

先搞懂扫描和连接的基本逻辑
打开BLE调试宝第一件事就是扫描,但不少人一进来就点扫描,结果列表空空。这里要注意,安卓手机得先开蓝牙和定位权限,部分机型还要手动允许应用获取附近设备。扫描分低功耗扫描和普通扫描,前者省电但间隔长,找设备时建议先用普通扫描把周围设备都列出来。看到目标设备名称后别急着连,先看信号强度,太弱的话连上也容易掉。连接成功后,BLE调试宝会自动读取服务和特征值,这一步有时候会转圈,耐心等几秒,别反复点连接,不然容易出现连接状态混乱。我遇到过连着两次点连接,结果一直卡在连接中,关掉蓝牙重开才恢复。
特征值读写和通知的实操细节
读写特征值是BLE调试宝用得最多的功能。写数据前先确认特征值支持写权限,有的只支持无响应写,勾选对应选项就行。写十六进制数据时注意格式,别带空格和0x前缀,不然会报错。读数据相对简单,点一下就能拿到当前值。通知这块坑最多,很多人打开了通知开关却收不到数据,原因通常是没先使能描述符里的通知位,BLE调试宝里要到描述符列表里把对应开关打开,再回到特征值页面看日志。还有一点,部分设备通知频率高,日志刷得太快看不清,可以暂停日志或者加过滤条件,只盯某个特征值。

数据收发异常的排查思路
数据发出去没回应,先别怀疑工具。第一步看发送格式,字符串和十六进制别搞混,BLE调试宝里两种模式切换很明显,发之前确认一下。第二步看MTU,默认23字节,超过长度会被截断,长数据要分包发。第三步看设备端是否真的回了数据,可以开日志对比时间戳。我之前调一个温湿度传感器,写指令后一直没数据,折腾半天发现是设备要求先写使能指令再读,顺序错了。用BLE调试宝的日志功能把收发记录导出来看,问题一目了然。
连接不稳定和断开的处理
连上没几秒就断开,常见原因是信号干扰或者设备休眠。先把手机靠近设备,避开USB3.0接口和路由器。如果还是断,到BLE调试宝设置里看看有没有开自动重连,开了之后断开会自动尝试恢复。另外安卓系统对后台应用有限制,调试时尽量让BLE调试宝保持前台,锁屏后连接容易被系统掐掉。实在不行换个手机试试,不同机型蓝牙栈差异挺大,我手上一台老机型连某品牌手环就是不稳,换新手机就正常。

日志和抓包怎么用才高效
BLE调试宝的日志功能很多人忽略,其实排错全靠它。收发数据、连接状态变化都会记下来,支持按特征值过滤。调试复杂设备时,建议先清空日志再操作,这样记录干净。抓包方面,工具本身能看ATT层交互,配合设备端日志对照,基本能定位是发送问题还是接收问题。有个小技巧,把常用指令存成快捷发送,省得每次手动输入,调试效率能提不少。
几个新手常问的小问题
问得最多的就是搜不到设备,八成是权限没给全或者设备已经被别的手机连走了。还有就是服务列表显示不全,点刷新或者重连一次通常能解决。至于数据乱码,检查一下编码设置,BLE调试宝支持文本和十六进制切换,别用错模式。总的来说,这工具上手快,但细节得自己多试,把日志看明白,大部分问题都能自己搞定。



喜欢
高兴
鬼脸
呵呵
无聊
伤心