新手有点不能理解这个代码,求分析!!!!-Arduino中文社区 - Powered by Discuz! Archiver

henyi2211 发表于 2014-6-12 11:14

新手有点不能理解这个代码,求分析!!!!

int buttonPin = 2;
int ledPin = 13;
boolean ledState = false;
boolean buttonState = true;

void setup()
{
pinMode(buttonPin,INPUT_PULLUP);
pinMode(ledPin,OUTPUT);
}

void loop()
{
while(digitalRead(buttonPin) == HIGH){}
if(ledState == true)
{
    digitalWrite(ledPin,LOW);
    ledState = !ledState;
}
else
{
    digitalWrite(ledPin,HIGH);
    ledState = !ledState;
}
delay(500);
}疑点1:
boolean buttonState = true;
在LOOP函数中没有出现过啊,这个有什么用啊???我感觉完全可以去掉。

疑点2:
while(digitalRead(buttonPin) == HIGH){}
while中没有执行语句啊,就一个条件判断,起什么作用呢,什么原理呢??


两个疑惑的地方,求指教!!!!

奈何col 发表于 2014-6-12 11:44

貌似是我写的:
解答1:
boolean buttonState = true;//记录led状态
loop中出现了啊。

解答2:
while(digitalRead(buttonPin) == HIGH){} //等待开关按下,当没有按下时,就一直是高电平,这句就一直处于循环等待状态。

奈何col 发表于 2014-6-12 12:05

这个程序的解释在书的50页

.oο麽麽茶㊣ 发表于 2014-6-12 12:36

确定程序写完了么?{:soso_e153:}

henyi2211 发表于 2014-6-12 15:42

奈何col 发表于 2014-6-12 11:44
貌似是我写的:
解答1:
boolean buttonState = true;//记录led状态


谢谢,第二个我理解!第一个没出现过啊

henyi2211 发表于 2014-6-12 15:43

.oο麽麽茶㊣ 发表于 2014-6-12 12:36
确定程序写完了么?

书上的例子,我按书上写的啊

.oο麽麽茶㊣ 发表于 2014-6-12 16:02

henyi2211 发表于 2014-6-12 15:43
书上的例子,我按书上写的啊

那就是不按按钮 LED闪啊闪,按住按钮LED不闪了。
那个buttonState没有任何意义。

奈何col 发表于 2014-6-12 16:34

呃呃呃,我看成ledstate了,那个buttonState确实没意义,估计是我从其他程序上复制粘贴来时,忘删掉了

电子狂热者 发表于 2015-1-12 00:08

奈何col 发表于 2014-6-12 16:34
呃呃呃,我看成ledstate了,那个buttonState确实没意义,估计是我从其他程序上复制粘贴来时,忘删掉了 ...

就这个问题,搞得我也瞎琢磨了好几天!原来是一场误会,悲催了

奈何col 发表于 2015-1-12 03:25

电子狂热者 发表于 2015-1-12 00:08
就这个问题,搞得我也瞎琢磨了好几天!原来是一场误会,悲催了

非常抱歉,第二版中已经修正了这个问题
页: [1] 2
查看完整版本: 新手有点不能理解这个代码,求分析!!!!