【USART】使用TI提供程序,发现串口返回数据多一个无效字节

楼主
【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]
1楼
你好:
建议你使用串调试工具来做这类基础实验,对你的调试会有较好的帮助。[P]其二,建议你检查一下的硬件连接是否有问题,最好使用PC真硬件串口连接。[/P][P]由于你使用的是ACLK作为时钟源,建议你可以稍为降波特率频率来试试。比如2400、4800。[/P]

电脑版 Page created in 0.2344 seconds width 3 queries.