打印
[信息]

BlueNRG-1,2 characteristic value size 区别

[复制链接]
528|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
两只袜子|  楼主 | 2021-1-4 11:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我在 ST 的官方例程看到两个透传 demo:BLE_Throughput 和 BLE_Throughput_EXT

BLE_Throughput 程序说明里有一句话:The maximum length of the characteristic value is 20 bytes.

BLE_Throughput_EXT 仅支持 BlueNRG-2,程序说明:the ATT MTU size up to 247 bytes and data length extension feature


我用的是 BlueNRG-1,做如下设置修改

TXCharHandle, RXCharHandle 的 Char_Value_Length 改为 100;

  • aci_gatt_add_char(uartServHandle, UUID_TYPE_128, &char_uuid, 100, CHAR_PROP_NOTIFY, ATTR_PERMISSION_NONE, GATT_DONT_NOTIFY_EVENTS, 16, 1, &TXCharHandle);
  • aci_gatt_add_char(uartServHandle, UUID_TYPE_128, &char_uuid, 100, CHAR_PROP_WRITE | CHAR_PROP_WRITE_WITHOUT_RESP, ATTR_PERMISSION_NONE, GATT_NOTIFY_ATTRIBUTE_WRITE, 16, 1, &RXCharHandle);

ATT_VALUE_ARRAY_SIZE 增加了 320 Bytes;


再在 aci_gatt_attribute_modified_event 事件里添加 测试代码,只要有接收就向 client 发送字符串常量。

  • static char str[100] = "This is a const string!";
  • aci_gatt_update_char_value_ext(connection_handle, uartServHandle, TXCharHandle, 1, (uint16_t)strlen(str), 0, strlen(str), (uint8_t *)str);

我用手机蓝牙助手测试,只能接收字符串前 24 Bytes

BlueNRG-1 真的只能支持 20 Bytes 吗?不然为什么 BLE_Throughput_EXT 仅支持 BlueNRG-2?


说明:20 Bytes 以内的数据传输目前没有发现任何问题


使用特权

评论回复
沙发
磨砂| | 2021-2-1 12:50 | 只看该作者
能接收的字符太少了吧

使用特权

评论回复
板凳
晓伍| | 2021-2-1 12:52 | 只看该作者
要是随时可以接收 那也可以接受

使用特权

评论回复
地板
八层楼| | 2021-2-1 12:54 | 只看该作者
这样解决也不错

使用特权

评论回复
5
观海| | 2021-2-1 12:57 | 只看该作者
接收数据稳定吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2028

主题

7308

帖子

10

粉丝