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:发生 UART 溢出事件和挂起问题

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1513842/cc2340r5-uart-overrun-event-and-hang-issue-is-occurring

器件型号:CC2340R5

工具/软件:

您好、

              目前我正在处理 basic_ble OAD 片上外设配置文件工程。 并  尝试      以20字节 的 MTU 大小、以100ms 的间隔在 UART 115200波特率连续从模块发送到移动端的20字节数据(我们是在下一个通知排队以在 UART 上发送和打印成功响应(4字节)之前等待之前发送的通知)。 完成多个数据包传输。

我们发现, 在 UART 115200波特率上,当试图以100毫秒的时间间隔从模块向移动端连续发送20字节的数据时,以及当连续 接收到在 UART 上打印的 ANC 通知(SMS)数据,以及发生 UART 溢出和模块挂起问题时,就会发生 UART over run。

其中 RX 环缓冲区大小为1500、TX 环缓冲区大小为 500、 最大 PDU 数为10。  

此处的关键点是不能更改默认波特率、不能跳过 ANC 通知。

如何解决 UART 溢出问题。

#define UART_MAX_READ_SIZE 300

uint8_t uartReadBuffer[UART_MAX_READ_size];

UART2_READ (UART、&uartReadBuffer、UART_MAX_READ_SIZE、0);

状态= SimpleGattProfile_SetParameter (SIMPLEGATTPROFILE_CHAR4、20、&uartReadBuffer[SentDataLen]);   

在这里,我们尝试设置 调用 SimpleGattProfile_SetParameter ()的时间间隔,时间为10毫秒,没有延迟。  

请帮助我们解决这个问题。

SDK 版本:simplelink_lowpower_f3_SDK_8_10_01_02

CCS 版本:CCS 12.7.1

谢谢、

Vignesh。

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

    您好:

    感谢您联系我们! 我们将查看您的问题、并在周一(5/19)之前回复您!

    此致、

    Tarek

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

    尊敬的 Vignesh:

    感谢您的耐心。 您能详细说明一下 UART 是如何超限的吗?

    我还建议在不同的任务中处理所有 UART 任务、而不是在等待 UART_read ()时停止 BLE 任务。 请记住、在执行此操作时、BLE 任务应该始终是最高优先级的任务。

    我希望这对您有所帮助! 如果这不起作用、请告诉我。

    此致、

    Tarek