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.

[参考译文] TMS320F28378S:如何将 RTS/CTS 添加到 SCI 端口?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1426025/tms320f28378s-how-to-add-rts-cts-to-sci-port

器件型号:TMS320F28378S

工具与软件:

我没有看到任何有关如何为 SCI 通信实现 RTS/CTS 线路的代码示例。  

我需要在 Tx 期间使 RTS 线路保持高电平、以便启用 RS-485收发器。 这可以通过等待 SCI_isTransmitterBusy (uint32_t base)变为 false 来实现、但在启用 FIFO 时该功能不起作用。

有人能帮助我找到在不关闭 FIFO 的情况下实现 RTS 线路功能的代码吗?

谢谢。

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

    您好、Valeriy:

    如果您查看 DriverLib sci.h 文件、其说明如以下代码片段中所示:

    因此、将其与不使用 FIFO 略有不同。  

    我不那么熟悉 RTS/CTS、因为我们的 SCI 本身并不支持它、但如果您只需要线路在传输期间保持高电平、那么使用 GPIO 并在传输开始时设置为高电平、之后设置为低电平吗?  

    此致、

    Allison

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

    Allison

    对、我只需要在发送过程中将 GPIO 线路保持为高电平。 SCI_isTransmitterBusy()函数在未启用 FIFO 时非常适用于该用途。 启用 FIFO 后、在发送最后一个字符之前、GPIO 线始终会掉电。 您共享的此函数的描述表明该函数的行为方式。

    我可以使用什么功能或寄存器来确定传输何时在启用 FIFO 的情况下结束?

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

    您好、Valeriy:

    遗憾的是、我不知道以不同于非 FIFO 的方式针对 FIFO 模式对其进行评估的另一种方法。 正如我之前提到的、

    使用 GPIO 是否可以在传输开始时设置为高电平、在传输开始时设置为低电平

    或者、如果由于时序问题、也许需要在传输的 BUSY 函数之后添加一些延迟?

    此致、

    Allison

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

    Allison

    为最后一个字符 Tx 的持续时间添加延时时间似乎有效。

    感谢您的意见。