在使用ESP8266进行低功耗开发时,遇到设备进入deep-sleep模式后无法通过内部RTC自动唤醒的问题:串口仅输出启动信息,但未执行setup()函数。这种现象若非硬件质量问题(如劣质模块),几乎难以用其他原因解释。
唤醒失败的原因先根据自己的理解逐一排查,如果都不行,尝试下面的方法:
1.在setup()代码中加入D0引脚定义

2.将esp8266的GPIO7通过 10k 上拉电阻连接到 VCC,如下图所示

我将GPIO7上拉之后内部rtc唤醒功能就能正常使用了,
3.如果还不能,也可以尝试将GPIO16和RST之间串联510Ω电阻。
注意事项:
a.需要使用deep-sleep模式,将所有函数都应该放在setup中(查看相关资料了解到)
b.在烧录时需要将RST与D0的连接断开,否则烧录不进去
c.代码下载完毕,需要按一次RST复位才能执行新的代码
d.关于deep-sleep模式的好多内容都是付费,其实进入deep-sleep模式很简单,只需要ESP.deepSleep(10 * 1000000);便可以进入睡眠,
如果需要RST唤醒就是ESP.deepSleep(0);
转载的:带链接通不过 所以吧链接去了。。。