您的位置首页百科知识

关于单片机语句While(!key1)的疑问

关于单片机语句While(!key1)的疑问

的有关信息介绍如下:

关于单片机语句While(!key1)的疑问

while(!key1)一般是要放在if(!key1)的花括号内的,也就是:

if(!key1) //如果key1被按下

{

DelayMs(5); // 软件延时进行按键消抖

while(!key1); // 等待按键释放

fun(); // 要执行的函数

}

分析一下,单片机C语言和软件C,C++不是完全一样的,单片机C要结合硬件电路看的。

你的叙述不太清晰,这里我把软硬件分开表述:用button1表示硬件按键,button1一端接单片机IO,另一端接地,button1所连接到的IO被定义为key1。button1不工作时IO为高电平,一旦button1被按下,对应的IO就被拉低,所以key1取非代表的是按键被按下。当按键松开了key1就恢复高电平了,所以不会一直执行while(!key1),除非你一直按着它。就这么着了。