|
检测串口数据的代码总是不对,大家帮忙看看呗,看哪里错了、谢谢了
void receive() interrupt 4
{
if(RI)
{
RI = 0;
RX1_Buffer[RX1_Cnt] = SBUF; //保存一个字节
if(RX1_Buffer[0]==0xFF)
{
RX1_Cnt++;
}
else
{
RX1_Cnt=0;
}
if(RX1_Buffer[1]==0x00)
{
RX1_Cnt++;
}
else
{
RX1_Cnt=0;
}
switch(RX1_Buffer[0])
{
case 0xFF:
switch(RX1_Buffer[1])
{
case 0x00:
switch(RX1_Buffer[3])
{
case 0x00:
switch(RX1_Buffer[4])
{
case 0xFF:
switch(RX1_Buffer[2])
{
case 0x01: flag_forward=1; break;
case 0x02: flag_backward=1; break;
case 0x03: flag_left=1;break;
case 0x04: flag_right=1;break;
default: RX1_Cnt=0;
}
;break;
}
;break;
}
;break;
}
;break; default: RX1_Cnt=0;
}
// RX1_Cnt=0;
// }
//
// if(RX1_Cnt>=8)
// {
// if(RX1_Buffer[0]==0xFF && RX1_Buffer[1]==0x00 && RX1_Buffer[3]==0x00 && RX1_Buffer[4]==0xFF)
// {
// if( RX1_Buffer[2]==0x01)
// flag_forward=1;
// else
// if( RX1_Buffer[2]==0x02)
// flag_backward=1;
// else
// if( RX1_Buffer[2]==0x03)
// flag_left=1;
// else
// if( RX1_Buffer[2]==0x04)
// flag_right=1;
// }
// RX1_Cnt=0;
// }
// else
// {
// RX1_Cnt=0;
// }
// RX1_Cnt=0;
}
if(TI)
{
TI = 0;
B_TX1_Busy = 0; //清除发送忙标志
}
}
|
|