写给自己备忘:
最近在写一个生产用的小程序时遇到的一个问题,之前用BLE蓝牙发送数据一般不超过10个字节,所以从来没有遇到过超过20个字节的情况。
出现的现象就是发送的数据被截断了,超过20个字节的部分被抛弃。收到的数据只有20个字节。
开始只修改了蓝牙底层#define UART_SERVER_MTU_DFT 23的这个数据,把23改为了53,测试依然是只能20个字节,从网上查找解决方法,多数说分包发送,但是这里发送的是AT命令,分包发可能会有问题,然后看到有个安卓的接口可以修改MTU数据长度,于是去查WX有没有对应的接口,果然没有失望,找到了对应的API。
const mtu = 53;
wx.setBLEMTU({
deviceId: that.data.deviceId,
mtu,
success:(res)=>{
console.log("setBLEMTU success>>", res)
},
fail:(res)=>{
console.log("setBLEMTU fail>>", res)
}
})
搞定!
仅做为备忘,高手勿喷