您好,
我是MSP430系列微控制器的新产品,我正在使用MSP430FR2433开发套件的UART。
但当我将'A'(十六进制:0x41)的字节输出到USI_A0 UART时,结果有时不正确。
我检查了示例代码"MSP430FR24xx Demo - USI_A0 External Loopback test @ 11.52万 b波特",但结果与0xC1和0x81而不是0x41相同。
以下是输出日志。
C1 C1 41 C1 41 41 C1 41 41 C1 C1 41 41 C1 C1 41 C1 41 C1 C1 C1 C1 41 41 C1 41 C1 41 C1 41 41 C1 41 C1 C1 C1 41 41 41 C1 41 C1 C1 41 C1 41 41 C1 41 C1 C1 41 C1 41 41 41 41 41 C1 41 C1 C1 C1 C1 C1 C1 C1 41 41 81 C1 41 41 C1 81 C1 C1 C1 41 C1 81 41 C1 41 81 C1 C1 81 C1 C1 41
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
P1DIR = 0x01;
P1OUT = 0x00;
P1REN = 0x00;
P1SEL1 &= ~(BIT4 | BIT5); // USCI_A0 UART operation
P1SEL0 |= BIT4 | BIT5;
UCA0CTLW0 |= UCSWRST; // Put UART A0 to software reset
UCA0CTLW0 |= UCSSEL__SMCLK; // Use SMCLK(1MHz) for baud rate calculation
UCA0BRW = 8; // N = f/BR = 1000000/115200 = 8.68055555
UCA0MCTLW = 0xD600; // 1000000/115200 - INT(1000000/115200)=0.68 -> (From UG TABLE 22-4)0xD6
UCA0CTLW0 &= ~UCSWRST; // Releas UART software reset
PM5CTL0 &= ~LOCKLPM5; // Disable the GPIO power-on default high-impedance mode to activate previously configured port settings
char ch = 'A';
while(1){
UCA0TXBUF = ch;
__delay_cycles(500000);
}
return 0;
}

