|
看了串口接收程序那部分的代码,有点疑惑,麻烦大家解释一下。
void USART1_IRQHandler(void)函数中的:
if(cmd_flag2 ==0) //.......1
{
if(cmd_flag2) //.......2
{
uart_buf[uart_Count]=vlue;
uart_Count++;
if(uart_buf[1] == 0xff)
{
cmd_flag2 = 1;
}
else
{
cmd_flag1 = 0;
}
}
cmd_flag2 = 1;
}
1处和2处是不是存在矛盾啊?看函数意思是确定数组包头的,但1处函数成立2处就不成立,反之亦然。结果是永远进不去2处判断,是有BUG,还是我自己还没理解函数啊?
|
|