CH579从机无法修改大于20的特征值

我下载的是CH579EVT 2.3版本的例程, 我使用的是EVT\EXAM\BLE\Peripheral 中的从机例程

我想要char1的长度大于20



我修改了 gattaprofile.h 文件中宏定义

#define SIMPLEPROFILE_CHAR1_LEN               30  

同时修改CONFIG.h 文件中的宏定义为

#define BLE_BUFF_MAX_LEN                             150



然后使用手机的BLE调试助手(WCH)连接从机,去读取该特征值,发现无法读取

如果将SIMPLEPROFILE_CHAR1_LEN 定义小于等于19   都是可读取到正确的值


 


问题解决了:自己来填坑一下, 如果手机连接从机,需要手动点击右上角的三个... 然后后修改MTU,将MTU修改变大

//====================================================================


另外补充一下,在multiCentral例程中,主机跟从机交换了MTU信息,但是主机并没有将该信息进行设置(在Central例程中是有的),所以一直都是默认值(在这个例程中 回调函数centralHciMTUChangeCB 内部是空的)

不知道这个问题是就是这样设定还是软件的bug  

解决方法 就是在centralHciMTUChangeCB函数内加入 

attExchangeMTUReq_t req;

//MTU改变的时候

 req.clientRxMTU = maxRxOctets;

 GATT_ExchangeMTU(connHandle,&req,centralTaskId);   //改变MTU  双方协商之后的结果

PRINT("connHandle: %d ,maxTxOctets:%d maxRxOctets:%d\n",connHandle,maxTxOctets,maxRxOctets);

 

即可实现MTU的更新

谢谢分享.


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