完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好
我希望这是发布此查询的正确位置。 我正在寻找有关如何确保GPIO即使在重置ESP8266期间仍保持在给定状态的信息 硬件:nodeMCU V1.0 上的 ESP-12E。通过Arduino IDE编程 D7 GPIO13 引脚通过 1k 电阻连接到 NPN 晶体管 (2N2222) 基极。 集电极通过白色 LED 传输至 3.3V 发射器接地。 D5 GPIO14 pin is grounded => the LED if off when in the loop() of the sketch. 目前,当 ESP 退出深度睡眠模式并重新启动时,LED 会亮一会儿。一旦草图进入 setup(),它当然会按照编码的方式关闭。 我想避免这种情况并在复位过程中强制 GPIO13 变为低电平。 我在 Expressif 数据表中阅读了以下文本: 对于低功耗操作,还可以将 GPIO 设置为保持其状态。例如,当芯片断电时,所有输出使能信号均可设置为保持低电平。 第 4.1 章第 13 页 -ESP8266EX 数据表 v5.7 我搜索了利用此漏洞的方法,但找不到任何信息。 是否可以通过在库中实现的命令来控制这种行为?哪一个? 还有其他线索吗? 输入 GPIO14 - nodeMCU 上的 D5 #define PIN_PIR 14 输出 // GPIO13 - D7 on nodeMCU #define LED_TOP 13 int Led = LED_TOP; int pirState; 无效设置() { pinMode(Led, OUTPUT); digitalWrite(Led, LOW); pinMode(PIN_PIR, INPUT); } void loop() { pirState = digitalRead(PIN_PIR); if (pirState == 1) { digitalWrite(Led, HIGH); } else { digitalWrite(Led, LOW); } if (millis() > 5000) { digitalWrite(Led, LOW); ESP.deepSleep(5000000, WAKE_RF_DEFAULT); delay(15); } } |
|
相关推荐
1个回答
|
|
要确保GPIO在ESP8266重置期间保持给定状态,您可以使用以下方法:
1. 使用外部上拉或下拉电阻:在GPIO引脚上添加外部上拉或下拉电阻,以确保在重置期间引脚保持所需的状态。在您的情况下,您可以在GPIO13上添加一个上拉电阻(例如10kΩ),以确保在重置期间引脚保持高电平。 2. 使用外部存储器:您可以使用外部存储器(如EEPROM)来存储GPIO状态,并在设备启动时读取该状态。这样,您可以在重置期间保持GPIO状态,并在设备启动时恢复该状态。 3. 使用硬件看门狗:您可以使用硬件看门狗来检测设备是否已经重置,并在这种情况下保持GPIO状态。但是,这种方法可能需要额外的硬件和编程。 4. 使用内部上拉或下拉电阻:ESP8266具有内部上拉和下拉电阻。您可以通过设置GPIO配置寄存器来启用内部上拉或下拉电阻。例如,要启用GPIO13的内部上拉电阻,您可以使用以下代码: ```cpp pinMode(D7, INPUT_PULLUP); ``` 这将确保GPIO13在重置期间保持高电平。 5. 修改启动代码:您可以修改设备的启动代码,以便在启动时立即设置GPIO状态。这样,您可以确保在设备启动时立即恢复所需的GPIO状态。 在您的情况下,我建议尝试使用外部上拉电阻或内部上拉电阻,因为这些方法相对简单且不需要额外的硬件。如果您需要更可靠的解决方案,可以考虑使用外部存储器或硬件看门狗。 |
|
|
|
只有小组成员才能发言,加入小组>>
541浏览 6评论
454浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
434浏览 5评论
436浏览 4评论
409浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-18 20:17 , Processed in 0.712495 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号