需要从串口接收两个字节,收到后置标志位,程序如下
void comm0_rx(void) interrupt 4
{
m=0;
while( m<2)
{
if(RI0)
{
RI0=0;
recdata[m]=SBUF0;
SBUF0=recdata[m];
while(!TI0);
TI0=0;
m++;
}
}
flag0=1;
flag1=1;
ES0=0;
}
程序运行后,接收及发送都没问题,但就是最后置标志位语句不是每次都能执行,偶尔接收一次就能执行,大多数要接收好几次才能置位(次数不定)。置位语句放在接收与发送之间也没用。有没有遇到过这种问题的?