在ESP32低功耗模式下,正确配置RTC外设唤醒并保留关键变量,需分三步:1) 将关键变量放入RTC快速内存(RTC_FAST_ATTR)或RTC慢速内存(RTC_NOINIT_ATTR),确保深睡时数据不丢失;2) 配置RTC唤醒源,如定时器或GPIO,使用esp_sleep_enable_timer_wakeup()或esp_sleep_enable_ext0_wakeup(),并调用esp_sleep_pd_config()关闭不必要的外设电源;3) 进入深睡前调用esp_deep_sleep_start(),唤醒后通过esp_sleep_get_wakeup_cause()判断唤醒源,并恢复外设初始化。注意:RTC内存容量有限(8KB),仅存必要变量;若需保留堆数据,需使用RTC_NOINIT_ATTR或备份到NVS。建议在唤醒后重新初始化WiFi/蓝牙等外设,避免状态冲突。
mcuku 阿沐 · 2026-08-27