yeapsion 发表于 2015-8-2 11:21:29

宠物屋STM32串口接收程序有问题

看了串口接收程序那部分的代码,有点疑惑,麻烦大家解释一下。
void USART1_IRQHandler(void)函数中的:

                     if(cmd_flag2 ==0)//.......1
                        {
                                if(cmd_flag2)//.......2
                                {
                                                uart_buf=vlue;
                                                uart_Count++;
                                                if(uart_buf == 0xff)
                                                {
                                                        cmd_flag2 = 1;                                                       
                                                }       
                                                else
                                                {
                                                        cmd_flag1 = 0;
                                                }
                                }
                                cmd_flag2 = 1;
                        }


1处和2处是不是存在矛盾啊?看函数意思是确定数组包头的,但1处函数成立2处就不成立,反之亦然。结果是永远进不去2处判断,是有BUG,还是我自己还没理解函数啊?

伯爵云锁 发表于 2015-8-24 13:46:24

我也发现有这样的问题

Gokit2 发表于 2016-1-10 13:01:56

感觉嵌套的判定cmd_flag2不太对哎

超越者 发表于 2016-7-25 13:06:56

我也是感觉这个地方有问题,,有没有官方的解释啊,,,看了一个机智云教程,也没说这个问题怎么回事。。。。:'(
页: [1]
查看完整版本: 宠物屋STM32串口接收程序有问题