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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8422|回复: 10

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

[复制链接]
发表于 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中没有执行语句啊,就一个条件判断,起什么作用呢,什么原理呢??


两个疑惑的地方,求指教!!!!
发表于 2014-6-12 11:44 | 显示全部楼层
貌似是我写的:
解答1:
boolean buttonState = true;  //记录led状态
loop中出现了啊。

解答2:
while(digitalRead(buttonPin) == HIGH){} //等待开关按下,当没有按下时,就一直是高电平,这句就一直处于循环等待状态。
发表于 2014-6-12 12:05 | 显示全部楼层
这个程序的解释在书的50页
发表于 2014-6-12 12:36 | 显示全部楼层
确定程序写完了么?{:soso_e153:}
 楼主| 发表于 2014-6-12 15:42 | 显示全部楼层
奈何col 发表于 2014-6-12 11:44
貌似是我写的:
解答1:
boolean buttonState = true;  //记录led状态

谢谢,第二个我理解!第一个没出现过啊
 楼主| 发表于 2014-6-12 15:43 | 显示全部楼层
.oο麽麽茶㊣ 发表于 2014-6-12 12:36
确定程序写完了么?

书上的例子,我按书上写的啊
发表于 2014-6-12 16:02 | 显示全部楼层
henyi2211 发表于 2014-6-12 15:43
书上的例子,我按书上写的啊

那就是不按按钮 LED闪啊闪,按住按钮LED不闪了。
那个buttonState没有任何意义。
发表于 2014-6-12 16:34 | 显示全部楼层
呃呃呃,我看成ledstate了,那个buttonState确实没意义,估计是我从其他程序上复制粘贴来时,忘删掉了
发表于 2015-1-12 00:08 来自手机 | 显示全部楼层
奈何col 发表于 2014-6-12 16:34
呃呃呃,我看成ledstate了,那个buttonState确实没意义,估计是我从其他程序上复制粘贴来时,忘删掉了 ...

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

点评

非常抱歉,第二版中已经修正了这个问题  详情 回复 发表于 2015-1-12 03:25
发表于 2015-1-12 03:25 来自手机 | 显示全部楼层
电子狂热者 发表于 2015-1-12 00:08
就这个问题,搞得我也瞎琢磨了好几天!原来是一场误会,悲催了

非常抱歉,第二版中已经修正了这个问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 02:48 , Processed in 0.106980 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表