黄youhui 发表于 2021-5-10 09:35 谢谢回复,我已经查到原因了。因为while内的条件不满足了,所以跳到了break内退出了。因为我通过示波器看过,将输入线拔掉后,IO口的电平始终是高的,所以想不通while为什么会退出,后来我发现PC4的电平在1和0之间变化,现在我怀疑是硬件坏了或是别的原因,我自己再查查。 |
4 最重要的一点,其实的while()根本就没进去,至于为何会直接跳到break,可能是代码优化的结果,进去后直接break和没进去是一个效果。 4 最重要的一点,其实的while()根本就没进去,至于为何会直接跳到break,可能是代码优化的结果,进去后直接break和没进去是一个效果。 4 最重要的一点,其实的while()根本就没进去,至于为何会直接跳到break,可能是代码优化的结果,进去后直接break和没进去是一个效果。 1 外部输入的信号,共地了吗? 2 while()里面很少会放函数的,因为函数返回值可能是一个整数也可能是一个地址 3 你的全局变量初始化了吗?如果没有初始化,他们可以是任意值。 |
粗心大意,while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4)) 不等价 test_temp=GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4); while(test_temp){} |