This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2340R5:传输期间数据丢失。

Guru**** 2589245 points
Other Parts Discussed in Thread: SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1396782/cc2340r5-missing-data-during-transfer

器件型号:CC2340R5
主题中讨论的其他器件:SysConfig

工具与软件:

大家好!

我根据 data_stream 示例修改了一个工程、并 使用了 simplelink_lowpower_f3_sdk_8_10_01_02。

我有另一个设备将数据写入 BLE UART、然后将数据发送到 simplelink connect。 我在该项目中添加了流量控制、并确认它可以正常工作。

现在我遇到了一个问题、我毫无延迟地发送10次数据、每次发送100个字节、simplelink connect 有时 接收的 数据低于80%。

在读取代码期间我没有任何过程。 是否有任何方法可以 使传输数据可靠?

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Xuefeng:

    感谢您的咨询。

    我想问一下、"无延迟"一词是什么意思、您的连接间隔是什么?

    关于100字节的写入请求、您可能需要查看以下函数(而不是常规的 GATT_WRITE ):GATT_WriteLongCharDESC ()、这是在特征值长于单个写入请求属性协议消息中可发送的值时使用的函数、因此它对其进行分段。

    此外、您可以从我们的 Github 存储库(但尚未迁移到8.10)查看 UART over BLE 示例: https://github.com/TexasInstruments/ble_examples/tree/simplelink_low_power_f3_sdk-7.20/examples/rtos/LP_EM_CC2340R5/ble5stack/data_stream_UART_over_BL。 如果需要、用户指南的这一部分可帮助您完成迁移(链接)工作。

    BR、

    David。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    我已使用 UART over BLE 样本进行测试、当波特率超过115200时、它具有相同的误差、但我们需要921600波特率。

    这是一个结果图、我用90 ASCII 从0x21填充到0x7A

    请帮助解决此问题而不会延迟。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Xuefeng:

    您是否使用 GATT_WriteLongCharDesc () 函数而不是正常的 GATT_WRITE 函数? 很抱歉、如果我之前的消息令人误解、我们 Github 存储库中的 UART over BLE 示例未实现此功能、但会设置通过 BLE 传输串行数据的项目。

    BR、

    David。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    我 不清楚如何 使用 GATT_WriteLongCharDesc ()代替正常 GATT_WRITE。

    我认为使用哪个写入功能应该是 SDK 自动选择。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Xuefeng:

    我们可以尝试以下操作吗?

    • 使用 SysConfig 将 PDU 大小增加到最大255。                                                                             
    • 我可能值得使用蓝牙监听器进行检查、看看 TX 有效载荷是否实际上在255左右、以便在中央器件(手机)上丢弃问题。
    • 我希望我们确认我们为每份通知分配的时间长度。 使用我们调用 GATT_Notification ()的函数也会很有帮助。 您应该能够通过查看 Notti.len = allocLen 来了解分配了多少数据(这很可能位于 data_stream_server.c 内部)

    如果您使用手机作为中央设备/客户端设备、那么这应该可以正常工作。 GATT_WriteLongCharDesc () 在将长数据从中央设备传输到外围设备时(作为中央设备/客户端的电话应该能够处理它)是有意义的,在此对误解表示歉意。

    BR、

    David。