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.

[参考译文] SCI UART 通信-处理大数据包

Guru**** 2473260 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1471949/sci-uart-communication---handling-big-data-packets

器件型号:TMS320F28379D

工具与软件:

您好!

我们使用 两个 SCI 进行 UART 通信。 一个 SCI 用于传输、另一个 SCI 用于接收、它们是两个独立的通道。 我们有  发送和接收的多数据字节结构。 其中一个传输数据包结构为100字节、同样、接收数据包结构为20字节。现在、 我们实施代码的方式是、在 for 循环中、我们将 从 TXBUF 传输16位数据、然后根据数据结构发送100字节的数据。 同样、在 传输完完整的数据包结构后、我们将  使用 RXBUF 读取16位数据、随后读取20个字节的数据、并将其存储在数组中、然后提取相关数据。

是否还有其他最佳方法来处理此实施? 因为如果我们需要在单个数据包结构中发送更多的字节、就很难对其进行缩放、因为假设我正在传输数据、但同时、我有一个传入数据、我们担心、我们可能会错过这些数据、因为 CPU 可能仍在忙于传输数据。

第四百零八章

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

    您好、Gautham、

    请允许我再花一天时间审核您的问题。 感谢您的耐心等待!

    此致、

    Allison

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

    您好!

    感谢您的耐心。 澄清一下、您是否已经在使用中断? 如果不是、我会建议您 在数据进入时使用一个中断来接收数据(您可以像当前有的那样只在后台循环传输)。 通过这种方式、只要数据进入、数据接收就会优先。  

    如果系统中没有发生任何其他中断、您可以实现 RX 和 TX 中断。 唯一需要注意的是要确保中断优先级方案与您所需的程序相匹配(确保 SCI 模块的 RX 优先级高于 TZ)。 但发送和接收的数据是什么性质的? 应用是否需要持续传输数据或仅在特定条件下传输?

    此致、

    Allison