在一个工程里面发现stm32的输出不对劲,调试看了一下,发现在一个if判断那里,即使条件不成立但是还依然运行了里面的程序,导致的状态不对劲,一开始以为是语法写的不规范,后面改了语法,再后面就分开成两个if来判断,但调试的时候依然如此
a = 1;
b = 1;
if(a == 1 && b == 0)
xxxxxxx; //条件不成立依然运行了这一句
最后看了一下Keil里设置的优化等级,发现我之前设置成O3了,导致了程序跑飞了
再后来改成了O0.不优化代码了就解决了那个问题了