也许学习效率也是有周期性的,前段时间学习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的,所以它永远只有一种状态,永远也都是点不亮的。
用户1080093 2013-8-3 07:53
用户1678296 2013-7-13 23:23
用户1588142 2013-6-26 12:29
用户1584489 2013-6-25 14:43
用户840986 2013-6-24 15:58
用户1167151 2013-6-24 13:59
用户1602177 2013-6-24 10:49
用户1406868 2013-6-24 08:43