ESP32在Light/Deep Sleep下,RTC内存(RTC_SLOW_MEM)用于保存唤醒后数据,但需注意:1)Deep Sleep时RTC_FAST_MEM默认不保持,需通过esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_FAST_MEM, ESP_PD_OPTION_ON)显式开启;2)GPIO唤醒源(如EXT0/EXT1)在Deep Sleep下仅支持RTC GPIO(GPIO0-5, 25-27, 32-39),普通GPIO无效,且需配置上拉/下拉以固定电平防误触发;3)Light Sleep下GPIO唤醒需设置esp_sleep_enable_gpio_wakeup(),但注意GPIO矩阵中断在睡眠时可能失效,建议用RTC IO;4)排查时用esp_sleep_get_wakeup_cause()确认唤醒源,并检查RTC内存数据是否因电源域关闭被清零。实操建议:先在Light Sleep下验证RTC内存和GPIO,再切Deep Sleep,用逻辑分析仪抓GPIO电平变化。
mcuku 阿沐 · 2026-08-27