热度 22
2013-6-25 14:38
1827 次阅读|
8 个评论
也许学习效率也是有周期性的,前段时间学习STM32感觉比较快,也很顺手,可是从上星期学中断,不知道怎么回事,像是中了魔一样,就是不能理解,折腾了几天,总算是折腾出来了。但是今天我的一个小的语法问题,却让我很无语。 本来我的设计是: KEY1(PC10)控制LED1(PB1); KEY2(PC11)控制LED2(PB12); KEY3(PC10)控制LED3(PB13); KEY4(PB3)控制LED4(PB14); 前面三个都能控制,也都能反映,但是就是LED4就是不能控制,于是乎想到可能是JTAG的原因影响到了中断(PB3没有进入中断),大力查找,各种资料的看,验证,但是最后的结果是,PB3进入了中断;那会不会是硬件有问题,又是一番大力的验证,结果是硬件也没问题,结果也没问题;最后就是在仔细的查一遍程序结构,最后发现一条语句的不一样:LED4!=LED4;而其他的是:LED1=!LED1; LED2=!LED2; LED3=!LED3;很明显程序出了问题。 因为: LED1=!LED1; LED2=!LED2; LED3=!LED3; 它们等价于 LED1=~LED1; LED2=~LED2; LED3=~LED3; 也就是每次LED都是取反。 而,LED4!=LED4 等价于 LED4=LED4 +!LED4 它是永远等于1的,所以它永远只有一种状态,永远也都是点不亮的。