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.

[参考译文] MSP430G2553:UART 发送垃圾信息

Guru**** 2581345 points
Other Parts Discussed in Thread: MSP430G2553

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/613309/msp430g2553-uart-sending-garbage

器件型号:MSP430G2553

您好!

   我正在使用 UART 将 MSP430与 PC 连接、以发送单个字符。 MSP430通过 TTL 232接口向 PC 发送信号。我看到的是垃圾以及接收到的单个字符。 代码如下所示、

#include "msp430g2553.h"
字符 Rx;
void main (void)

WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 = CALBC1_1MHz;
DCOCTL = CALDCO_1MHz;
P1DIR = 0x41;// P1.0 = UART TX LED,P1.6= UART RX LED,0100 0001
P1OUT = 0x00;
P1SEL |= BIT1 + BIT2;// P1.1 UART Rx 操作已选择=> p1sel,psel2 =1
P1SEL2 |= BIT1 + BIT2;// P1.2 UART TX 选择=> p1sel,psel2 =1
UCA0CTL1 |= UCSSEL_2 + UCSWRST;//时钟= SMCLK、寄存器复位
UCA0BR0 = 109;//波特率= 9600
UCA0BR1=0;
UCA0MCTL = UCBRS_1;//调制值= 1
// UCA0STAT |= UCLISTEN;//启用回路模式
UCA0CTL1 &=~Ω UCSWRST;//清除 UCSWRST 以释放 USCI_A0以进行操作
IE2 |= UCA0TXIE + UCA0RXIE;//启用发送中断
_BIS_SR (GIE);//启用全局中断
UCA0TXBUF ='M';//发送一个字节


#pragma vector = USCIAB0TX_vector
_interrupt void TXInterrupt (void)

P1OUT ^= BIT0;//在 Tx 上点亮 P1.0 LED

#pragma vector = USCIAB0RX_vector
_interrupt void RXInterrupt (void)

P1OUT ^= BIT6;//在 RX 上点亮 P1.6 LED

有什么建议吗?

谢谢、

此致、

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

    感谢您发布此问题。 在查看您的代码后、我注意到您的波特率与您的1MHz 频率不正确。 尝试使用以下代码:

    UCA0BR0 = 104;//波特率= 9600

    原始代码适用于微控制器的默认频率、但在您更改时不适用。 我注意到的另一点是、main 末尾应该包含一个永远的 while 循环 while (1);以防止函数结束。 这样您的微控制器就知道它需要处于什么状态。

    请告诉我这是否可以解决您的问题。

    此致、
    特拉维斯黑
    应用工程师
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Travis、
    感谢您的更正。 现在就开始工作了!

    此致、