- 
     
 
 蓝牙设备名称长度受限于蓝牙广播数据包的长度
 
 
 ,
 
 如果广播数据包的长度不能包含完整的设备名称,则只显示短名称,其余不能容纳的部分将被截断。
 
- 
     
 ESP32-C3 支持 BLE5.0,
 
 最大广播包长
 
 支持
 
 1650
 
 字节
 
 ,
 
 可通过
 
 esp_ble_gap_config_ext_adv_data_raw
 
 函数来设置。
 
- 
     
 可以基于 esp-idf v5.0 版本的 SDK 中的
 
 esp-idf/examples/bluetooth/bluedroid/ble_50/ble50_security_server
 
 例程来测试扩展蓝牙名称的长度。修改
 
 如下广播包的 name 长度
 
 和对应
 
 长度
 
 的 name
 
 字符个数
 
 即可:
 
 
   
其中
0x11
表示后面所有字符长度;
0x09
代表数据类型(固定),
"E","S","P",...........
则表示设备名称对应的字符。
    
     测试说明如下:
    
   
- 
     
 将 0x11 改为 0x37 ,即测试蓝牙名称为 54 字节的长度
 
- 
     
 填充 54 个字节的蓝牙名称字符
 
    
     测试结果如下:
    
    
     
   
    
    
    说明:
   
- 
     
 如果使用的是 ESP32 ,则仅支持 BLE4.2 ,BLE4.2 的广播数据包长受限为 31 字节,可基于 esp-idf v4.2 版本的 ble server 例程来进行测试。可在 menuconfig 中查看 BLE4.2 设备名称长度的限制说明,如下:
 
 
   
 
版权声明:本文为Marchtwentytwo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
