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.

[参考译文] TMS320F28374S:在 SCI 通信中、是否可以在不使用接收中断的情况下建立接收处理?

Guru**** 2538930 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/991513/tms320f28374s-in-sci-communication-is-it-possible-to-establish-reception-processing-without-using-reception-interrupts

器件型号:TMS320F28374S

您好、香榭丽舍

在 SCI 通信中、是否可以在不使用接收中断的情况下建立接收处理?

通信的波特率为38400bps、我希望每1ms 执行一次接收处理。
(每次发送一条约10字节的消息。)

如果每1ms 接收3个字节到4个字节。
因此、我想使用 FIFO 来检查 FIFO 接收数据的深度、并将数据存储在缓冲区中。

但是、也存在一些问题。
例如、假设在1ms 接收过程的时序中、FIFO0-FIFO2中有3个字节的数据。

假设我们在 SCIFFRx 寄存器中选中 RXFFST=3、并将数据存储在缓冲器的 FIFO0-FIFO2中。
在这个过程中是否有可能接收到下一个数据、并且数据被存储在 FIFO3中?

非常感谢您的帮助。
此致、
Yuka

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

    您好、Yuka、

    以下是我对您两个问题的回答:

    *是的、可以按照 sci_ex1_loopback 示例中所示完成非中断 SCI 通信(使用轮询)。

    *如果我理解您的问题、那么是的、在您检查 RXFFST 时、下一个数据可能会进入 FIFO。 但是、您从 SCIRXBUF 寄存器(接收数据缓冲寄存器)中一次读取一个字节的数据。 因此、当您读取每个字节时、即 RX 缓冲区中的字节移位时。

    此致、

    Vince

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

    尊敬的 Vince:

    我理解您的回答。
    由于它一次移动一个字节、我们发现在读取三个字节后、第四个字节在接下来的1ms 后成为数据的开头。

    感谢您的友好支持。

    此致、
    Yuka