我这边也想清空串口缓存区,请较大神:
我PC正常给我发通信协议AA1C或AA0C,我程序功能实现无问题;
但是我担心使用过程中一旦出现一个干扰,产生一个乱嘛,比如AA,随后我PC再发协议信号,通讯就不灵了,程序大致如下:
void ser() interrupt 4
{
if(RI)
{
RI=0; //接收中断标志
cut[j]=SBUF;
j++;
if(j==2)
{
low4=cut[1]&0x0f;
if(cut[0]==0xaa && low4==0x0c )
{
RI=1;
j=0;
ES=0; //关串口中断
flag=1; //串口接收标志位置位
}
else
{
cut[0]=0;
cut[1]=0;
j=0;
ES=1;
RI=0;
}
}
if(j>3)
{
//报错
}
}
}
我这样操作,清空的是自己的变量,一直没有清空串口缓存区,所以一直存在问题,请大神看看,有何解决办法