我的串口配置程序如下:
void Uart0_Init(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD
P3DIR |= 0x10; // P3.4 output direction
BCSCTL1&= ~XTS; // LFXT1工作在低频模式
BCSCTL2 |= SELM1+SELM0; // MCLK = LFXT1 (safe)
UCTL0 |= CHAR; // 8-bit character
UTCTL0 |= SSEL1; // 波特率发生源为SMCLK
UBR00 = 0x01; //
UBR10 = 0x00; //
UMCTL0 = 0x00; //
UCTL0 &= ~SWRST;
ME2 |= UTXE0 + URXE0; // Enabled USART0 TXD/RXD
IE2 |= URXIE0; // Enabled USART0 RX interrupt
}
然后 串口的数据就是发不出来,然后我把这句“BCSCTL1&= ~XTS;”改成“BCSCTL1|= XTS;”数据是可以发出去了,但发送不同长度的数据串口的波特率在示波器上显示不同,不知道什么原因