串口发送数组会出现数据错位现象,例如 发送01 02 03 会接收成 03 01 02 ,实验多次都是这样
/*******************************************/
#pragma vector=USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
{
switch(__even_in_range(UCA1IV,4))
{
case 0:break; //无中断
case 2: //接收中断处理
//UCA1TXBUF=UCA1RXBUF; //将接收缓存器中的字符传送给发送缓冲寄存器,发送给PC
for(char i=0;i<3;i++)
{
// while (!(UCA1IFG&UCRXIFG));//等待完成发送
ad[i]=UCA1RXBUF;
while (!(UCA1IFG&UCRXIFG));//等待完成接收
}
for(char k=0;k<3;k++)
{
UCA1TXBUF=ad[k];
while (!(UCA1IFG&UCTXIFG));//等待完成发送
}
break;
case 4:break; //发送中断不处理
default:break; //其他情况无操作
}
}