原因:主从设备默认通讯属性值大小为20字节,超过长度需要协商指定。
解决方案:
在主从设备连接成功后,从设备调用 ATT 协商API,进行属性长度的协商指定。
(下面一句是避免分片)
/* 设置客户端的MAX_ATT_MTU值,不设置会导致STM32客户端最大传输长度停留在20字节 */
aci_gatt_exchange_config(HandleNotification.ConnectionHandle);
/* 避免分片,不设置会导致吞吐量减小 */
hci_le_set_data_length(HandleNotification.ConnectionHandle, 251, 2120);
CFG_BLE_MAX_ATT_MTU 也要配置成251
完成:
这样就可以接收超过20字节的数据了。