极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13942|回复: 10

不好意思,低级问题请教

[复制链接]
发表于 2014-7-28 13:13:01 | 显示全部楼层 |阅读模式
void setup()
{
  Serial.begin(9600);
  pinMode(8, OUTPUT);
}

void loop()
{
  digitalWrite(8, HIGH);
  if(digitalRead(8))
  {
    ......①
  }
  else
  {
    ......②
  }
}

请问,会跳到①段还是②段呢?{:soso_e183:}
回复

使用道具 举报

发表于 2014-7-28 13:20:08 | 显示全部楼层
Pin8已经定义作为输出了,而且已经知道设置为High了,为什么还要去读?但语句如果High就到1,永远到不了2.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-28 13:24:37 | 显示全部楼层
林定祥 发表于 2014-7-28 13:20
Pin8已经定义作为输出了,而且已经知道设置为High了,为什么还要去读?但语句如果High就到1,永远到不了2.


8脚上会挂一个LED,经过多次输出高低电平后,想读一下确认最后LED的状态,所以会有一个digitalRead。

如果HIGHT= 1, LOW = 0的话, 那么应该是跳转到2段吧。这个还要请教。
回复 支持 反对

使用道具 举报

发表于 2014-7-28 13:35:07 | 显示全部楼层
这么简单的问题,自己测试下不就知道了么
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-28 13:41:19 | 显示全部楼层
i7456 发表于 2014-7-28 13:35
这么简单的问题,自己测试下不就知道了么

正好现在手头没板子测,就过来抛个帖子问问。
回复 支持 反对

使用道具 举报

发表于 2014-7-28 14:59:35 | 显示全部楼层
{:soso_e143:}
HIGH=1=true


  if(true)
  {
    ......①。。。永远在这里
  }
  else
  {
    ......②
  }
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-28 15:10:48 | 显示全部楼层
Ansifa 发表于 2014-7-28 14:59
HIGH=1=true

哦,ture是HIGH。那定义成输出的端口,也是可以读的咯。
回复 支持 反对

使用道具 举报

发表于 2014-7-28 15:17:08 | 显示全部楼层
kevinzhang 发表于 2014-7-28 15:10
哦,ture是HIGH。那定义成输出的端口,也是可以读的咯。

可以读的。无论是自身输出或是外界强加的,都能正确读出。读写是两条电路。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-28 15:42:18 | 显示全部楼层
Ansifa 发表于 2014-7-28 15:17
可以读的。无论是自身输出或是外界强加的,都能正确读出。读写是两条电路。

回复 支持 反对

使用道具 举报

发表于 2014-7-28 16:19:26 | 显示全部楼层
kevinzhang 发表于 2014-7-28 15:42

你的loop中,程序是按以下顺序走的
digitalWrite(8, HIGH);
   if(digitalRead(8))
if前已经被你 High了,因此只会走到1,不可能到2
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-28 16:25:36 | 显示全部楼层
林定祥 发表于 2014-7-28 16:19
你的loop中,程序是按以下顺序走的
digitalWrite(8, HIGH);
   if(digitalRead(8))

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-18 11:15 , Processed in 0.096401 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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