BlueNRG-1,2 characteristic value size 区别
本帖最后由 21edqwr 于 2020-12-22 13:33 编辑<p>我在 ST 的官方例程看到两个透传 demo:BLE_Throughput 和 BLE_Throughput_EXT</p>
<p>BLE_Throughput 程序说明里有一句话:<span style="color:#e74c3c;"><em>The maximum length of the characteristic value is 20 bytes. </em></span></p>
<p>BLE_Throughput_EXT 仅支持 BlueNRG-2,程序说明:<span style="color:#e74c3c;"><em>the ATT MTU size up to 247 bytes and data length extension feature</em></span></p>
<p> </p>
<p>我用的是 BlueNRG-1,做如下设置修改</p>
<p>TXCharHandle, RXCharHandle 的 Char_Value_Length 改为 100;</p>
<pre>
<code class="language-cpp">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);</code></pre>
<p>ATT_VALUE_ARRAY_SIZE 增加了 320 Bytes;</p>
<p> </p>
<p>再在 aci_gatt_attribute_modified_event 事件里添加 测试代码,只要有接收就向 client 发送字符串常量。</p>
<pre>
<code class="language-cpp">static char str = "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);</code></pre>
<p> </p>
<p>我用手机蓝牙助手测试,只能接收字符串前 24 Bytes</p>
<p>BlueNRG-1 真的只能支持 20 Bytes 吗?不然为什么 BLE_Throughput_EXT 仅支持 BlueNRG-2?</p>
<p> </p>
<p><strong><em>说明:20 Bytes 以内的数据传输目前没有发现任何问题</em></strong></p>
<p> </p>
<p>是不是和这个地方有关?</p>
<p></p>
<p> </p>
<p></p>
<p>这个我之前也看到了,说实话我不知道这句话是啥意思<img height="28" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/face-with-tears-of-joy_1f602.png" width="28" />。</p>
<p> </p>
<p>我去找找其他资料看看有没有关于 BlueNRG-1 数据长度限制的说明</p>
21edqwr 发表于 2020-12-22 14:04
这个我之前也看到了,说实话我不知道这句话是啥意思。
我去找找其他资料看看有没有关于 BlueN ...
<p></p>
littleshrimp 发表于 2020-12-22 14:13
<p>感谢</p>
<p>我自己再研究一下</p>
页:
[1]