技术,如果我用安卓APP单包发送超过20个byte,我要怎么配置CH579使得每次pfnWriteAttrCB回调能够接收超过20byte的数据?
补充一下,就是如何配置MTU模式,有没有相关例程发一份
在那个config. h文件里面有一个设置MTU最大值的地方。
把BLE_BUFF_MAX_LEN改大
#ifndef BLE_BUFF_MAX_LEN
#define BLE_BUFF_MAX_LEN251
#endif
但是又出现了个新问题,我做了这个配置后,第一次连接是可以单次回调接收长度能超过20个byte,但是在蓝牙不掉电重启的情况下,手机app掉线后重连,单次回调接收长度又变成了20,这个保存配置的SNV也做了处理,但是就是不行。
#ifndef BLE_SNV
#define BLE_SNV TRUE
#endif
按照规范,ble连上后,mtu都是按照23(有效数据最多20字节) 来进行通信的,如果需要更长,mtu是需要在连接上后进行 交换的.
你需要在每次连上后,app端都要发起mtu交换,这样才行.
看字是看懂了,能否留个微信或者qq进一步了解下是怎么回事
CH571 BLE设备端可以发起MTU交换嘛
由设备端发起是不建议的,最好是有主机端发起,因为有些软件并不认可从机修改。