做过一个Zigbee通信的实验,需要用到蓝牙模块与手机蓝牙模块之间的通信用以接收RSSI,很长时间没有解决就收数据乱码的问题,最后无意间了解到手机蓝牙的baudrate为9600,乱码的问题也就迎刃而解了,为了避免丢失,并给网络上需要的朋友提供帮助,现把这篇帖子码上,不足之处还望批评指出。
通信前必须具备东西:
(1) 蓝牙串口模块;
(2) 安卓系统并带有蓝牙的手机;
(3) 串口调试软件;
(4) 蓝牙测试软件;
配置蓝牙串口模块:
这里把蓝牙串口模块配置成从机模式,具体设置过程如下:
(1) 让蓝牙串口模块进入命令设置状态,具体操作是:按着模块上唯一的按键不放,用USB接口给模块上电,这时正确的情景是模块上的LED灯是长亮几秒后熄灭再循环的。如果出现灯快速闪烁的情况,证明模块并未进入命令设置状态,断电重复上述操作即可。
(2) 将模块通过串口线与电脑连接;成功连接的标志是:打开电脑的设备管理器可以看到“端口”下有USB-SERIAL 端口,如下图:
(3) 打开“蓝牙测试软件”,点击“搜索端口”,波特率选择“38400”,这时应该出现:“端口:2已打开”;
(4) 在“蓝牙测试软件”的右边输入你要配置的信息,主要的常用信息便是:
① 设备名称:就是你想给蓝牙串口模块上的蓝牙命名,支持中英文;这里设置为“Bluebooth”;
② 主从角色:就是模块的角色,这里选“从角色”;
③ 设备类:就是蓝牙设备类型,这里设置为COD:
④ 连接密码:就是指与其他蓝牙设备连接时需要对方输入匹配的密码,这里设置为“1234”,可支持至少8位的长度,字母与数字混合;
⑤ 查询访问码:设置成通用查询访问码9e8b33;
⑥ 连接模式:主从和回环模式选择,这里选“从角色”;
⑦ 查询访问模式:选0或1,0是标准模式,1是RSSI加强模式,可以连接多个设备,这里选1;
⑧ 通信波特率:在常用的波特率里选择,由于手机通信波特率是9600(这一点容易被忽视),所以建议这里选择9600;
最后点击“更新模块信息”
图1 设置界面
看到左边出现OK的蓝色字样,配置成功,关闭软件。
(5) 把蓝牙串口模块的串口与电脑断开连接,断电,再重新给模块上电,注意这时候不需要按着模块上的按键,直接上电即可,然后与电脑串口连接;可以看到的正确现象是模块上的LED灯是比较快地闪烁的。
在手机上安装串口助手软件(ANDROI系统P串口助手),将HC-PDA-android.apk文件放在手机上安装即可;安装后即有BTClient程序图标。点击运行即可。
手机与模块蓝牙连接:
(1)因为之前设置了蓝牙串口模块的蓝牙为从机,所以这里手机上的蓝牙作为主机发起连接。直接点击手机上BTClient软件上的“连接”,“查找设备”,选择我们的蓝牙串口模块“Bluebooth”,提示“连接成功”;
(2)打开串口调试软件,选择串口号2 和波特率9600,数据位8位,停止位1位,校验位和数据流控制都是none;
(3)在串口调试软件发送数据到手机上,或者手机发送数据到到电脑上,支持字母和数字,不支持中文。以下是样例通信结果:
图2 蓝牙串口模块收到的数据
图3 手机上的蓝牙接收和发送的数据
至此,我们就已经顺利的完成了蓝牙模块与手机的通信了。