完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在 ESP-M3/ESP8285 上,将 GPIO16 连接到 RST 会导致出现快速重置,而不是在设置的间隔后唤醒。如果我用手指触摸 GPIO16 和 RST 之间的电阻器上的一根引线,似乎确实有效。
我有一个远程传感器项目,我一直在使用 Wemos D1 Mini 进行一段时间,我希望将其缩小到 ESP-M3/ESP8285。我的项目翻译得很好,除了我在 ESP-M3 上的深度睡眠唤醒方面遇到问题。在 D1 Mini 上,我有一个从 D0 连接到 RST 的二极管,然后我给它一个 ESP.deepSleep 并设置适当的时间,它先休眠然后正确唤醒。 我找到的所有文档都表明我需要将 GPIO16 连接到 RST。当我用那个连接打开 ESP-M3 时,板载 LED 快速闪烁,我的串行控制台显示随机乱码。我意识到每次 LED 闪光灯都会重复出现乱码,并且在没有 GPIO16 到 RST 连接的情况下打开设备电源时出现一次相同的乱码串。 我还注意到,如果没有 GPIO16 到 RST 连接,设备会进入深度睡眠,然后在设定时间后,板载 LED 闪烁一次。 一件奇怪的事情是,如果我用手指触摸电阻器的一根引线,它似乎可以正常工作。 为了调试,我将代码缩减为: 代码:全选void setup() { Serial.begin(115200); Serial.println(""); // Linebreak to clear all the gibberish Serial.println("Starting up..."); delay(3000); int naptime = 5000000; Serial.println("Nap time"); ESP.deepSleep(naptime, WAKE_NO_RFCAL); } void loop() { } 并将我的布线简化为仅 VCC、GND、TX 和 RX 到我的 USB 串行适配器,以及连接到 RST 的 GPIO16。 |
|
相关推荐
1个回答
|
|
遇到您所述的问题时,您可以尝试以下步骤:
1. 确保您已正确设置了GPIO16的引脚模式。在使用深度睡眠唤醒时,GPIO16需要设置为外部唤醒引脚。可以使用以下代码进行设置: ``` pinMode(16, INPUT_PULLUP); rtc_gpio_pulldown_dis(16); rtc_gpio_pullup_en(16); gpio_pin_wakeup_enable(GPIO_NUM_16, GPIO_INTR_LOW_LEVEL); ``` 2. 确保GPIO16连接到RST的电阻器的值与您的应用程序需要的值相同。如果阻值过大可能会使唤醒失败。 3. 在连接完GPIO16和RST之后,将芯片电源断开并重新连接,可能有助于解决快速重置问题。 4. 尝试使用外部唤醒引脚以外的唤醒方式,例如定时唤醒或串口唤醒。 5. 如果问题仍然存在,您可以尝试使用外部电路来仿真GPIO16的触发,例如使用定时器或运放作为触发器,并将输出连接到GPIO16。 希望这些步骤可以帮助您解决ESP-M3/ESP8285深度睡眠唤醒的问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
416浏览 6评论
346浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
329浏览 5评论
331浏览 4评论
313浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-20 10:14 , Processed in 0.959553 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191