【USART】使用TI提供程序,发现串口返回数据多一个无效字节
[P]代码如下:通过P2口的小灯发现输入数据是正确的,但是串口返回数据是错误的(有时回复2个字节)。[/P][P] [/P][P]#include<msp430x14x.h>[/P][P]
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
P2DIR = 0xFF;P2OUT = 0xFF;
P3SEL |= 0x30; // 选择P3.4和P3.5做UART通信端口
ME1 |= UTXE0 + URXE0; // 使能USART0的发送和接受
UCTL0 |= CHAR + SWRST; // 选择8位字符
UTCTL0 |= SSEL0; // UCLK = ACLK
UBR00 = 0x03; // 波特率9600
UBR10 = 0x00; //
UMCTL0 = 0x4A; // Modulation
UCTL0 &= ~SWRST; // 初始化UART状态机
IE1 |= URXIE0; // 使能USART0的接收中断
while(1)
{
_EINT();
LPM1;
while(!(IFG1 & UTXIFG0));
P2OUT = ~RXBUF0;
TXBUF0 = RXBUF0;
}
}
/***********
*******串口中断接收服务程序
************/[/P][P]#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx(void)
{
LPM1_EXIT;
}
[/P]