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.

[参考译文] MSP430FR5994:UART 示例问题

Guru**** 2587365 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/785640/msp430fr5994-issue-with-uart-example

器件型号:MSP430FR5994

我在 CCS V8中运行 UART 示例 msp430fr599x_euscia0_UART_01。 在 Resource Explorer 中运行准确的代码时、当输入 LPM3时、它将无法可靠工作、接收到的字符通常是乱码。 如果我修改代码、使其无法放入 LPM3中、则可以正常工作。

我的 PC 通过 FTDI USB 转 UART 电缆发送字符。 它使用3.3V 电压、因此无需进行转换。  我将 PuTTY 用于 COM 端口 S/W

电压电平和位时序在示波器上看起来很好。 我不认为这是硬件问题、因为它在没有 LPM3的情况下工作正常。

从 PC 发送"A"、gu16UartRecv (用于故障排除的新温度变量)

应为:
0000000001100001b (0x61)

有时还可以、但使用 LPM3时通常是错误的:
0000000011011000b
000000001111110b

因此、问题出在 FR5994的收据中、而不是在传输中。

我不需要 LPM 来完成该项目、但我可能需要 LPM 来完成未来的项目。

下面的部分代码、从用@@@μ m 注释的原始代码修改的行。 这是有效的,原件是无效的。

(笑声)

UCA3IE |= UCRXIE;//启用 USCI_A3 RX 中断

__bis_SR_register ( GIE ); //@@@中断被启用
while (1)               //@@@不要输入 LPM

_bis_SR_register (LPM3_bits | GIE);//输入 LPM3、中断被启用
__no_operation();//用于调试器

#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector=EUSCI_A3_Vector
_interrupt void USCI_A3_ISR (void)
#Elif defined (_GNU_)
void __attribute__((中断(EUSCI_A3_Vector)) USCI_A3_ISR (void)
其他
错误编译器不受支持!
#endif

switch (__evo_in_range (UCA3IV、USCI_UART_UCTXCPTIFG))

  USCI_NONE 案例:中断;
  USCI_UART_UCRXIFG 案例:
   while (!(UCA3IFG&UCTXIFG));
     gu16UartRecv = UCA3RXBUF;//@@@ Save received char for debug
     UCA3TXBUF = gu16UartRecv;
     __no_operation();
     中断;

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

    您必须使用 LPM0。 问题出在 LPM3中、当接收到一个字节时、时钟系统需要一段时间才能从 LPM3中退出并稳定在适当的频率。 到那时、第一个字符要么丢失、存在帧错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、LPM0工作正常。 但是、有人应该修复示例代码、示例应该正常工作。