CH579M BLE蓝牙包接收长度问题

技术,如果我用安卓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进一步了解下是怎么回事j_0011.gif


@TECH46

CH571 BLE设备端可以发起MTU交换嘛


由设备端发起是不建议的,最好是有主机端发起,因为有些软件并不认可从机修改。


只有登录才能回复,可以选择微信账号登录