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.

[参考译文] RM57L843:UART RX 帮助

Guru**** 2553260 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/767205/rm57l843-uart-rx-help

器件型号:RM57L843

我正在寻找一种使用 UART 输入命令程序正常执行的方法。 我希望程序正常运行、但要"监听" UART 输入数据。

是否有办法在不调用 sciReceive()的情况下触发 RX 中断? 我发现在调用 sciReceive()方法之前,可以检查 sciIsRxReady(), 但是、我正在寻找一种在终端中接收到输入时触发 RX 中断的方法、而不是循环并检查一个标志来确定是否已接收到输入。

这是可行的吗? 或者、我是否必须不断检查 sciIsRxReady 标志以确定 UART 中已接收到什么内容?

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

    Josh、您好!
    sciReceive 函数实际上不会触发中断。 当 RXRDY 标志置位时产生中断(必须启用 RX 中断)。 当数据被接收并从移位寄存器移动到接收器数据缓冲区时、RXRDY 标志被置位并指示必须读取新数据。 如果 RX 中断被使能(SCISETINT 寄存器中的 RX INT 位被置位)、那么当 RXRDY 标志被置位时、就会产生中断。 您可以参阅器件 TRM 中的第29.3.2节:
    sciReceive 仅设置接收。以下内容从函数声明中复制。

    "在中断模式下、接收设置为和
    *例程立即返回、sciReceive 一定不能被调用
    *在 sciNotification 完成传输之前
    *将调用回调。"

    接收完所有数据后、您应该调用 sciReceive 为新的接收操作准备 SCI。 这可以在 sciNotification 中完成。

    此致、
    米罗