我在通过 Arduino IDE 1.6.10 编程的 HUZZAH 和 2 个不同的 nodeMCU 1.0 板 (12E) 上尝试了以下操作(我也可以将 platformIO 用作 IDE)。
我试图在各种引脚(分别对应于 GPIO15 GPIO2 的 D8 或 D4)上使用内部上拉,但没有成功。我正在修改标准 Blink 程序以将以下行添加到 setup()
或者我也尝试使用这种上拉方式:
然后在 loop() 中添加:
我期待看到输入将读作 1,但我得到的是一组零。如果我将外部连接到输入,那么我可以将输入设置为 1 或 0,以便它作为输入工作。但是上拉不起作用。
谷歌搜索我看到有一次讨论 INPUT_PULLUP 不工作,然后一些名叫 zeroday 的人修复了它,所以它确实工作了。但是所有这些讨论似乎都是关于 nodeLua 的,所以我不知道它们是否适用于在 Ardunio IDE 中进行编程。
Arduino 网站还说 INPUT_PULLUP 应该在 ESP8266 上工作
无论如何我在 2016 年 9 月发布这个。当然这应该工作???所有的板子都表现得一样,我试过的所有别针都表现得相似。(我意识到 GPIO 16 很特别,我没有尝试那个引脚)
代码:
全选#include
#define ESP8266_LED 2
void setup()
{
pinMode(ESP8266_LED, OUTPUT);
Serial.begin(9600);
Serial.println("setup");
pinMode(D8,INPUT_PULLUP);
}
void loop()
{
Serial.println(D8);
Serial.println(digitalRead(D8));
digitalWrite(ESP8266_LED, HIGH);
delay(500);
digitalWrite(ESP8266_LED, LOW);
delay(2500);
Serial.println("loop de doop bb");
}