当前位置:   article > 正文

nRF52832改变MTU大小的方法_nrf_sdh_ble_gatt_max_mtu_size

nrf_sdh_ble_gatt_max_mtu_size

    nRF52832的MTU最大支持247字节,但是SDK默认的不是最大, 修改方法如下:

1.改变"sdk_config.h"头文件中相关宏

  1. // <o> NRF_SDH_BLE_GATT_MAX_MTU_SIZE - Static maximum MTU size.
  2. #ifndef NRF_SDH_BLE_GATT_MAX_MTU_SIZE
  3. #define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 247
  4. #endif

2.修改nrf_ble_gatt_att_mtu_periph_set()函数的入参

  1. err_code = nrf_ble_gatt_att_mtu_periph_set(&m_gatt, 64);
  2. APP_ERROR_CHECK(err_code);

 默认的是64,最大可以改成247。

3.修改如下两个宏的值

  1. #define OPCODE_LENGTH 1
  2. #define HANDLE_LENGTH 2

这两个宏默认值1和2,总共占用3个字节。这是NUS协议层的头部需要占用的空间,可以不要。将这两个宏的值改为0,省出3个字节来。

4.用手机连接测试。如果手机蓝牙是4.2及以上的话,就会看到主从机之间协商的MTU为247,打印如下:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/223511
推荐阅读
相关标签
  

闽ICP备14008679号