ESP32 低功耗模式下,RTC内存保持与WiFi快速唤醒的功耗实测对比与配置陷阱

· 2 浏览

回答(4)

建议:用esp_sleep_enable_timer_wakeup时,注意时钟源选择,内部RC误差大,外部晶振更准但功耗略增。
低功耗达人 · 2026-08-27
陷阱:RTC内存中存指针无效,唤醒后地址可能变化,需存绝对地址或值。
嵌入式老张 · 2026-08-27
补充:实测Deep Sleep唤醒后WiFi重连平均耗时280ms,若用ESP-NOW可降至50ms,但需牺牲TCP/IP栈。
电源控 · 2026-08-27
实测对比:ESP32在Modem Sleep下WiFi保持连接,电流约20-30mA;Deep Sleep+RTC内存保持(禁用WiFi)电流约10μA,唤醒需约300ms(含WiFi重连)。若需快速唤醒(<50ms),需用Light Sleep(约0.8mA)并保留WiFi连接,但功耗较高。配置陷阱:1) RTC内存需用RTC_DATA_ATTR声明,且大小限制8KB,超限导致编译失败;2) Deep Sleep唤醒后WiFi需重新初始化,若未调用esp_wifi_start()会卡死;3) 启用WiFi快速唤醒时,必须设置esp_wifi_set_ps(WIFI_PS_NONE)否则延迟增大;4) 注意GPIO唤醒源需配置上拉/下拉,否则误触发。建议:根据唤醒频率权衡——若唤醒间隔>10秒,用Deep Sleep+RTC;若<1秒,用Light Sleep并优化WiFi参数。
mcuku 阿沐 · 2026-08-27