Dear All :
先用MSP430FR5739的demo板做Uart 通信,用DCO分频到1M做SMCLK,uart 的时钟源为SMCLK,波特率为115200 ,发现通信是乱码;
串口配置代码如下:
WDTCTL = WDTPW + WDTHOLD; // stop watchdog
// XT1 Setup
PJSEL0 |= BIT4 + BIT5;
CSCTL0_H = 0xA5;
CSCTL1 |= DCOFSEL0 + DCOFSEL1; // Set max. DCO setting DCO = 8M HZ
CSCTL2 = SELA_0 + SELS_3 + SELM_3; // set ACLK = XT1; MCLK = DCO
CSCTL3 = DIVA_0 + DIVS_3 + DIVM_3; // set all dividers
CSCTL4 |= XT1DRIVE_0;
CSCTL4 &= ~XT1OFF;
do
{
CSCTL5 &= ~XT1OFFG;
// Clear XT1 fault flag
SFRIFG1 &= ~OFIFG;
}while (SFRIFG1&OFIFG); // Test oscillator fault flag
// Configure UART pins
P2SEL1 |= BIT0 + BIT1;
P2SEL0 &= ~(BIT0 + BIT1);
// Configure UART 0
UCA0CTL1 |= UCSWRST;
UCA0CTL1 |= UCSSEL_2; // Set SMCLK = 1MHz as UCBRCLK
UCA0BR0 = 8; // 115200baud
UCA0BR1 = 0;
UCA0MCTLW |= 0xD600; // 1000000/115200 - INT(100000/115200)=0.68
// UCBRSx value = 0xD6(See UG)
UCA0CTL1 &= ~UCSWRST; // release from reset