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.

[参考译文] TMS320F280039:如何在数据长度未知且超过16时读取 SCI FIFO 数据

Guru**** 2393725 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1461665/tms320f280039-how-to-read-sci-fifo-data-when-data-length-is-unknown-and-over-16

器件型号:TMS320F280039

工具与软件:

尊敬的 Expert:

我的客户 使用的是 SCI FIFO、波特率高达921600、他们将 SCI FIFO 水平配置为16、并在 sci 中断中读取 FIFO 数据。

但是、其中的数据长度已未知、可能高达23字节或更多、  

由于 F28P55x SCI 具有 DMA 支持、  因此 fifo 级别1的 readChar 不可接受、因为这会导致 SCI 中断频率过高。

在 SCI 数据长度未知时、是否有关于此用例的任何建议?

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

    嗨、strong:

    下面是一些选项:

    • 使用基于轮询的方法、而不是基于中断的方法。 这将涉及在后台循环内持续轮询 RXFFIL 标志-如果大多数优先级程序执行发生在其他 ISR 中、情况将更好
    • 将发送器件配置为在发送每 x 个字节数之后发送一个中断检测信号。 在这种情况下、您可以使用 BRKDT RXERROR 中断来读取 RX FIFO 中该点剩余 y 数量的字节(其中 y = x % 16)。

    请告诉我、这些方法中的任何一种对于客户来说是否可行。

    此致、

    Delaney