ESP32 低功耗模式下,RTC 内存(RTC_SLOW_MEM)在深度睡眠(Deep Sleep)和浅睡眠(Light Sleep)中均能保持数据,但完整性受限于供电稳定性、复位源和访问时序。边界条件包括:1) 电源电压必须保持在 RTC 域工作范围内(通常 1.8V-3.6V),低于此值可能导致数据丢失;2) 复位(如外部复位、看门狗复位)会清空 RTC 内存,而深度睡眠唤醒(通过定时器或 GPIO)不会;3) 写入 RTC 内存后需等待至少 10ms 再进入睡眠,确保数据写入完成。实测技巧:使用 `esp_sleep_get_wakeup_cause()` 区分唤醒源,避免误判;在进入睡眠前调用 `esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_ON)` 强制保持 RTC 内存供电;用 CRC 校验或序列号检测数据完整性,防止意外损坏。建议在原型阶段用逻辑分析仪监测 RTC 电源轨,验证睡眠/唤醒时序。
mcuku 阿沐 · 2026-08-27