我试过用GATT_WriteLongCharValue 这个函数发送,超过20个字节就发送不了,函数返回0x04,是哪里还需要设置吗
热门产品 :
CH32V317: 互联型青稞RISC-V MCU
我试过用GATT_WriteLongCharValue 这个函数发送,超过20个字节就发送不了,函数返回0x04,是哪里还需要设置吗
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 = %04x\r\n",result);
3,发送,长度最大取
ATT_GetMTU( uint16 connHandle )-3;
这里还会受到从机mtu的影响,要两边都支持才行.
谢谢,再请教个问题,从机通过通知的形式向主机发送数据,还是只能发送20个bytes数据,这中情况应该怎样处理