我正在工作的ESP8266,我想添加一个内部拉到一个按钮。当我用电阻手动拉起时,我的接线工作得很好,但是当我在我的Arduino IDE代码中使用下面的一行添加内部拉起时,它不能正常工作。
pinMode(BOUTON,INPUT_PULLUP) 这是我的完整代码:
const int LED = 13;
const int BOUTON = 16;
void setup()
{
pinMode(LED, OUTPUT);
pinMode(BOUTON, INPUT);
}
void loop()
{
int etat = digitalRead(BOUTON);
if(etat==LOW)
{
digitalWrite(LED, HIGH);
}
else
{
digitalWrite(LED, LOW);
}
}这是我拉起的电线:

这是我的电线,应该是内部拉起的:

发布于 2017-07-26 11:40:00
在编写程序时,您错误地假设GPIO16有一个拔起电阻。事实并非如此。
在启动时,引脚被配置为输入。 GPIO0 0-GPIO0 15可以输入、输出或INPUT_PULLUP。GPIO16可以是输入、输出或INPUT_PULLDOWN_16。它也是deepSleep()的XPD (可能是通过一个小电容)。 请注意,GPIO6-GPIO 11通常用于与大多数esp8266模块上的闪存IC接口,因此通常不应使用这些引脚。
参考资料:拨款
发布于 2017-07-26 12:07:40
看看Adafruits对Feather ESP8266的概述。您可以使用GPIO的0、2、4、5、12、13、14、15、16,但:
这些引脚是通用的,可用于任何类型的输入或输出。大多数也有能力打开一个内部拉出。许多都有特殊的功能。
详细查看GPIO 16向我们展示了它是非常特别的。GPIO用于从深度睡眠中唤醒控制器。因此,它是唯一的GPIO有一个内置的拉下电阻,这是描述在这个初学者指南。这允许直接与重置连接。这意味着GPIO 16没有拔出电阻的假设。
https://stackoverflow.com/questions/45320181
复制相似问题