TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430F1232串口中断接收

通过串口接收一包数据(5字节),结果总出差,如果一个一个接收就正常,代码:

1.485初始化

void init485(void)

{

 UCTL0 = CHAR;                         // 8-bit character

   UTCTL0 = SSEL0;                       // UCLK = ACLK

   UBR00 = 0x03;                         // 32k/9600

   UBR10 = 0;                        

   UMCTL0 = 0x4a;

   ME2 |=  URXE0;              

   IE2 |= URXIE0;  

}

2.485中断接收一包数据

#pragma vector = UART0RX_VECTOR

__interrupt void r485(void)

{  

  for(cycle = 0;cycle < 5;cycle ++)

  {rxbuf[cycle] = RXBUF0; }        

  cycle = 0;  

}

Young Hu:

wen yi:

您好!

中断ISR有问题,串口的中断是每收到1个字节的数据便会触发一次中断,而在中断ISR中。连续读取了5次RXBUF0,这样数据肯定会出错的。

#pragma vector = UART0RX_VECTOR

__interrupt void r485(void)

{  

 rxbuf[cycle] = RXBUF0;

 cycle++;

 if(cycle>=4)

 {

   cycle = 0;

 }

}

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F1232串口中断接收
分享到: 更多 (0)