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/MSP430F233:MSP430F233 UART RX 勘误表

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/694693/ccs-msp430f233-msp430f233-uart-rx-errrors

器件型号:MSP430F233

工具/软件:Code Composer Studio

我有两个板(都带有 MSP430F233芯片)、我正尝试通过 UART 与它们进行通信。  我已刷写其中一个板以传输连续数据流(32位长)、而我的第二个板正在接收数据。  两个 UART 均配置为115200波特率、并且在启用 SMCLK 的情况下将我的 DCO 设置为8MHz。  我已经尝试读取 RX 缓冲器的内容、每次我读取缓冲器时、我都会注意到 UCOE、UCFE 和 UCRXERR 错误标志在我的调试会话中被发出。  我知道这意味着数据读取速度不够快、这会导致我的最后几个字节的数据被覆盖和损坏。  我对这些特定 MCU 进行编程是不是很熟悉、是否有任何好的解决方案可以修复此错误并在读取时清除 UCOE 错误?

谢谢!  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Gabriel、
    我建议您使用适配器和 PuTTy 等终端软件分别确认每个部件。
    这将使跟踪问题变得更容易。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我通过增大阵列大小来尝试并克服溢出错误、从而使我的代码能够读取数据流。 我能够成功读取 RX 板上的数据流、但当我切换开关并获取新的数据流时、我的值不会在 RX 板代码中更新。 我已刷写 TX 板以随开关切换而变化、但我想知道 RX 板代码的主循环中是否有方法多次调用 RX ISR 以持续读取通过发送的新数据。 我已经用一个示波器验证了新数据的输入。

    #pragma vector=USCIAB0RX_vector
    _interrupt void USCI0RX_ISR (void)

    如果(A < 8)

    READ_RX_Buffer[A++]= UCA0RXBUF; //读取和存储 RX 缓冲器内容

    其他

    对于(x = 0;x < 7;x++)

    if (read_RX_Buffer[x]='first_Byte_for_stream')

    //存储值


    X = 0; //重置阵列计数器

    IFG2 &=~UCA0RXIFG; //清除 RX IFG
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    > x = 0;//重置阵列计数器
    拼写错误警报:我怀疑您的意思是:
    > A = 0;//重置阵列计数器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Gabriel、
    您是否能够解决您的问题?
    如果您的 RX 中断被启用、那么当它接收到一个新的传输时、应该调用 ISR。 请检查您的中断是否已启用。