小程序使用蓝牙踩坑
1.如果你像我一样直接拷贝了官方的demo程序,那么要注意,在官方代码中,只扫描了Primary服务,要在getBLEDeviceServices函数中关闭判断Primary,否则设备的服务uuid会找不到,当然就用不了了。
2.链接成功以后传数据时,发现notify服务,第一包数据收到没反应,这个暂时没找到原因,反正重传能解决,先不管了。
3.收到的数据是arrayBuffer,要转换成需要的。
let unit8Arr = new Uint8Array(characteristic.value) ;
这是转换成byte数组的一种办法
4.往蓝牙发送数据时,同样要转成arrayBuffer格式
var buffer = new ArrayBuffer(length)
var view=new Uint8Array(buffer)
往view数组里面填数据即可,注意不要使用’h’赋值,直接用HEX
5.实测蓝牙往设备发送数据最大249个字节,没有发现丢包
设备往蓝牙发送数据时,测试出现不同程度丢包,字节大小为20时,没有发现丢包,这个跟模块性能有关,具体参考模块说明,暂时用20字节包长