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.

[参考译文] TMS320F28388D:将中断级别设置为 SCI_FIFO_RX5、但发生中断 Immidiatley

Guru**** 2551110 points
Other Parts Discussed in Thread: TMS320F28388D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1549016/tms320f28388d-setting-interrupt-level-to-sci_fifo_rx5-but-interrupt-occur-immidiatley

器件型号:TMS320F28388D


工具/软件:

您好:

我使用的是  TMS320F28388D 模块。

我获取了 sci_ex2_loopback_interrupt 示例工程、并删除了  

Sci_enableLoopback (SCI_BASE );  来自 initSCIAF5() 函数。  以取消环回功能。

我还更改了以下行:

SCI_setFIFO InterruptLevel (SCI_BASE、SCI_FIFO_TX2、SCI_FIFO_RX2)

更改为:

SCI_setFIFO InterruptLevel (SCI_BASE、SCI_FIFO_TX2、SCI_FIFO_RX5)

现在、如果我理解正确、这意味着只有当我接收到 5 个字节时才会发生 RX 中断

我在中断代码旁边放置一个断点、然后使用终端软件发送 1 个字节。

发生中断完整性。  

“我有没有说过我爱你?“  

它的行为方式是这样吗?

谢谢。

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

    您好:

    您的理解是正确的。 除了此示例代码、您是否还更改了其他任何内容? 另请注意、若要使用 controlCARD 上的 COM 端口、您必须确保在上设置 S1:A POS 2 并使用 GPIO28 和 GPIO29。 此外、在执行初始化代码后(并在 CCS 中启用持续刷新)、只需检查寄存器是否设置为环回禁用和 RX FIFO 级别的预期值。

    此致、

    Delaney

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

    好的、我现在了解发生了什么:

    这是第一次正常工作。  

    这意味着、当我发送前 5 个字节时、未发生中断、仅在发送字节的第 5 次发生中断。

    但在前 5 个字节之后、中断每隔一个字节就开始发生、我想原因是我在中断时只读取了 1 个字节。 如下所示:

    SCI_readCharArray (SCI_BASE、&rDataA[bindex]、1);

    当我将其更改为:  

    SCI_readCharArray (SCI_BASE、&rDataA[bindex]、5);

    解决此问题意味着中断被固化的第 5 个字节。

    谢谢。

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

    尊敬的 Yair:

    我可以看到、是的、在本例中、中断将在前五个字节之后每一个字节触发、因为传入的每个新字节等于 FIFO 中的总共 5 个字节。 我会关闭此主题、但如果您有任何其他问题、请随时创建另一个主题。 Slight smileμ s

    此致、

    Delaney