| 
 | 
 
看了串口接收程序那部分的代码,有点疑惑,麻烦大家解释一下。 
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,还是我自己还没理解函数啊? 
 
 |   
 
 
 
 |