51 串口接受数据问题
void serial_int() interrupt 4{ ES = 0; if (RI==1) { RI=0; switch(k) { case 0:if(SBUF==0xff) { value1[k]=SBUF; k++; } else { k=0; } break; case 1:value1[k]=SBUF;k++;break; case 2:value1[k]=SBUF;k++;break; case 3:value1[k]=SBUF;k++;break; case 4:value1[k]=SBUF;k++;break; case 5:value1[k]=SBUF;k++;break; case 6:value1[k]=SBUF;k++;break; case 7:value1[k]=SBUF;k++;break; case 8:value1[k]=SBUF;k++;break; case 9:value1[k]=SBUF;k++;break; case 10:value1[k]=SBUF;k++;break; case 11:value1[k]=SBUF;k++;break; case 12:value1[k]=SBUF;k++;break; case 13:value1[k]=SBUF; if(value1[k]==0xfe) { k=0;send_all();//返回数据 break;// flag=1; } else { k=0; send_all();//返回数据 break; } default: break; } }ES=1;}这个是我的串口接受程序,我用串口调试助手发送FF 01 01 01 01 02 02 02 02 03 03 03 03 FE第一次能正确返回FF 01 01 01 01 02 02 02 02 03 03 03 03 FE,发送第二次就返回FF FF 01 01 01 01 02 02 02 02 03 03 03 03,第三次又正确,第四次有是错误的FF FF 01 01 01 01 02 02 02 02 03 03 03 03这是什么原因啊,大神帮我看看,谢谢。