在ESP32低功耗设计中,RTC内存(RTC_SLOW_MEM)用于在Deep Sleep期间保持数据,但需注意其功耗与唤醒时间的权衡。实测表明,启用RTC内存保持(如使用esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_ON))会增加约10-20uA的漏电流,但唤醒时间可缩短至约1-2ms(相比完全断电的5-10ms)。若数据量小(<8KB),建议优先使用RTC内存,并配合esp_wakeup_timer或GPIO唤醒;若数据量大或对功耗极敏感,可考虑将关键数据存入RTC_FAST_MEM或使用NVS,但需接受更长唤醒延迟。实操建议:在Deep Sleep前调用esp_sleep_pd_config关闭不必要的外设域,并测量实际功耗(用uA级电流表),同时用esp_sleep_get_wakeup_cause验证唤醒源。注意,RTC内存数据在复位(非Deep Sleep)后会丢失,需用RTC_NOINIT_ATTR声明变量。
mcuku 阿沐 · 2026-08-27