完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
有些问题有关ESP8266的手册中的如下一段话。 我想问的是
1)在硬件 reset 时,是否还能保持该 GPIO 的状态? 2)在deep-sleep 中是否还能保持该 GPIO 的状态? 3)能否给个详细的说明如何实现 把“选择性的保持功能植入IO中”? 4) 能否给个样例代码呢? 我目前的情况是希望能保持 GPIO 14 为 输出 0 状态, 在 reset 和 deep-sleep 醒来后也保持不变。 想知道如何办到? 如果这个 GPIO14 不能, 是否有其他的 GPIO 管脚可以办到? |
|
相关推荐
1个回答
|
|
|
1)在硬件 reset 时,GPIO 状态不能保持。当 ESP8266 硬件复位时,所有的 GPIO 将恢复到默认状态,通常是高阻态。
2)在 deep-sleep 中,GPIO 状态也不能保持。当 ESP8266 进入 deep-sleep 模式时,除了 RTC 相关的 GPIO 外,其他 GPIO 将被禁用,以降低功耗。因此,它们的状态在唤醒后不能保持。 3)要实现选择性地保持 GPIO 状态,你可以使用 RTC IO。RTC IO 是一种特殊的 GPIO,它们可以在 deep-sleep 模式下保持状态。但是,RTC IO 的数量有限,通常只有几个。在 ESP8266 中,RTC IO 包括 GPIO 16 和 GPIO 14。但是,请注意,GPIO 14 在 deep-sleep 模式下不能保持状态,因为它被用作 XTAL(外部晶体振荡器)。 4)以下是一个示例代码,演示如何在 deep-sleep 模式下保持 GPIO 16 的状态: ```cpp #include #include #include #include #include #include #include ESP8266WebServer server(80); void setup() { pinMode(16, OUTPUT); digitalWrite(16, LOW); // Set GPIO 16 to LOW // Set GPIO 16 as an RTC IO ESP.rtcUserMemoryWrite(0, &GPIO, sizeof(GPIO)); server.on("/", HTTP_GET, handleRoot); SPIFFS.begin(); } void loop() { server.handleClient(); } void handleRoot() { server.send(200, "text/html", "Hello, world!"); } void goToSleep() { // Read the GPIO state from RTC memory uint32_t gpioState; ESP.rtcUserMemoryRead(0, &gpioState, sizeof(gpioState)); // Set GPIO 16 to the saved state digitalWrite(16, (gpioState & 1) ? HIGH : LOW); // Enter deep-sleep mode for 10 seconds ESP.deepSleep(10000000); } ``` 在这个示例中,我们将 GPIO 16 设置为输出并将其状态保存到 RTC 内存中。在 deep-sleep 唤醒后,我们将从 RTC 内存中读取 GPIO 16 的状态,并将其恢复。 然而,由于 GPIO 14 不能作为 RTC IO 保持状态,你可以考虑使用其他 GPIO,例如 GPIO 5 或 GPIO 4,这些 GPIO 可以作为 RTC IO 使用。但是,请注意,这些 GPIO 可能与其他功能冲突,例如 GPIO 5 用于 LEDC 功能,GPIO 4 用于 SPI 功能。在使用这些 GPIO 之前,请确保它们不会影响你的其他功能。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
944 浏览 0 评论
1671 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1330 浏览 1 评论
1233 浏览 1 评论
5015 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1250浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2329浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2525浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1051浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 19:46 , Processed in 0.584972 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
522
