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.

[参考译文] CCS/TMS320F28335:SCIRXEMU 中的值与 SCIRXBUF.bit.RXDT 中的值不同

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/593984/ccs-tms320f28335-value-in-scirxemu-different-from-value-in-scirxbuf-bit-rxdt

器件型号:TMS320F28335

工具/软件:Code Composer Studio

您好!

我在 SCI 通信方面遇到了一些问题。

然而、当我从 dsp1发送数据到 dsp2时、我正在 SCIRXEMU 寄存器上接收正确的数据、SCIRXBUF 读取其他内容。

正如 SCI 参考指南中所写的"SCIRXEMU 不是物理实现的;它只是一个访问 SCIRXBUF 的不同地址位置
不清除 RXRDY 标志"  

这2个寄存器是否应该具有相同的值?

-Ankit

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ankit、您正在读取的值是什么? 首先要记住的是、如果您在接收完整字节之前读取该值、则数据可能会有所不同。

    例如、如果您希望发送一个0xFF、并且只有4个位、那么您将从 SCIRXEMU = 0xF0读取(0是因为我们没有收到完整值。 如果我们然后读取 SCIRXBUF、并且有更多位进入、我们就可以得到整个数据包 SCIRXBUF = 0xFF。

    您读取 SCIRXEMU 而不是 SCIRXBUF 的原因是什么? SCIRXBUF 是否保存正确的信息?

    谢谢、

    Vince Rodriguez
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Vincent:
    不是、我收到了我确信的完整消息。

    我想我找到了我的答案。
    我使用的是 RXBUF 的 FIFO 操作。 因此、我接收到的信息实际上存储在 RX 缓冲器的第16个位置。 RXEMU 我想只存储一个字、因此立即向我展示了正确的读数。

    当我从 RXEMU 寄存器的 Tx 值发送一个周期字时、当你读取存储在 RXBUF 寄存器中的第16个字时、它的值与 RXBUF 寄存器的值相同。

    当我移除 FIFO 操作时、我能够获得与我使用 TX 发送的 RXBUF 中的第一个字相同的 RXBUF。

    感谢您宝贵的时间。