[ARM入门] 在STM32中while(!key)和while(key!=0)区别?

[复制链接]
2052|3
 楼主| 小沐127 发表于 2015-6-18 15:46 | 显示全部楼层 |阅读模式
小弟正在学STM32,我在学按键时,配置GPIO为输入上拉。然后再回读检测IO口是否为0时,顺便写了一句松手后再执行下面的程序,就是while(!key),但是程序死活不往下执行,最后改成while(key!=0)就好了。
请问大侠们这两句指令有啥区别?
while(!key)是判断程序内部执行的逻辑值,而不能用来读取判断外部输入的?
while(key!=0)是判断IO输入的值?
不理解,还望大侠解答。
airwill 发表于 2015-6-19 11:02 | 显示全部楼层
不知道你的 key 怎么定义的, 但不管怎么说, 这两个是不同的.

按照 C 的规则, (!key)  相当于 (key ==0),  跟 (key !=0) 当然不同! 初学者特别注意
renqinglei 发表于 2015-6-19 12:51 | 显示全部楼层
KEY=1时,!key 的逻辑值 0,key != 0 的逻辑值 1,不同吧
qinweixing 发表于 2015-6-19 14:55 | 显示全部楼层
C语言基础问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

48

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部