WCH沁恒单片机
直播中

胡秋阳

13年用户 1577经验值
私信 关注
[问答]

CH579如何发送超过20 Bytes的数据?

我试过用GATT_WriteLongCharValue 这个函数发送,超过20个字节就发送不了,函数返回0x04,是哪里还需要设置吗
  

回帖(1)

萧登水

2022-8-29 09:39:47
GATT_WriteLongCharValue 主机端给从机发送数据的api,



1,先在config.h里面BLE_BUFF_MAX_LEN 这个值改大,默认27,你可以改为251

2,主机端连接后 发起mtu 交换:

//然后在 连上的事件里就可以申请更新
attExchangeMTUReq_t pReq;
pReq.clientRxMTU = 247;
uint16_t result = GATT_ExchangeMTU( peripheralConnList.connHandle,&pReq, Peripheral_TaskID);
PRINT("result = %04xrn",result);
3,发送,长度最大取

ATT_GetMTU( uint16 connHandle )-3;


这里还会受到从机mtu的影响,要两边都支持才行.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分