6621E MTU设置和data length更新

eddy wen · 159次点击 · 5个月前

1.mtu 设置

       1.1 mtu是ATT层可以设置的最大交换数据,默认是23个字节,可以设置最大为247个字节,使用接口如下

   uint32_t gattc_mtu_exchange(uint16_t mtu);//mtu最大是247

      

2.data length更新

      2.1 data length属于LL层可以交换的最大数据,默认是27个字节,可以设置的最大数据是251个字节,接口如下

     uint32_t om_ble_gap_set_data_length(uint16_t conn_handle, uint16_t max_tx_octets, uint16_t max_tx_time);

   

   2.2 data length才是最终决定传输数据的大小,比如你的MTU设置了100个字节,data length还是默认的27个字节,那么传输这个100个字节需要分4包才能传输完毕;如果你的data length设置了251个字节,那么传输100个字节一次就可以传输完成,如下截图是抓包上看到区别

   image.png

  

3.参考代码接口部分如下,测试代码在附件  

else if (p_ble_evt->header.evt_id == BLE_GAP_EVT_CONNECTED)
{
om_ble_gap_set_data_length(p_ble_evt->evt.gap_evt.conn_handle, 251, 2120);
gattc_mtu_exchange(247);
}


   


main-202312051623.c
被收藏 1  ∙  0 赞  
加入收藏
点赞
0 回复  
善言善语 (您需要 登录 后才能回复 没有账号 ?)

请先登录网站