补充一点:配置GPIO唤醒时,务必使用RTC GPIO(如GPIO0,2,4,12-15),并设置esp_deep_sleep_enable_gpio_switch(false)以关闭非RTC GPIO,否则漏电流会显著增加。
低功耗老张 · 2026-09-03
在ESP32 Deep Sleep下配置RTC外设唤醒源,需先明确唤醒源类型(如定时器、GPIO、触摸或UART)。关键步骤:1) 使用esp_sleep_enable_*函数(如esp_sleep_enable_timer_wakeup或esp_sleep_enable_ext0_wakeup)配置唤醒源,确保GPIO在RTC域(如GPIO0-15)且启用内部上拉/下拉以减少浮空漏电。2) 调用esp_deep_sleep_start()前,关闭不用的RTC外设(如RTC外设电源域通过esp_deep_sleep_disable_rom_log或设置esp_sleep_pd_config),并设置RTC_SLEEP_PD_CONFIG_ALL以关闭未用RTC功能。3) 降低漏电流:将未用GPIO设为高阻或接地,避免悬空;使用外部上拉电阻时选择高阻值(如100kΩ);确保电源稳压器配置为LDO模式(esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_OFF))以减少静态功耗。实测建议:用电流表测量,Deep Sleep电流应<10μA(典型5μA)。若使用外部唤醒源,注意唤醒电平与去抖时间,避免误唤醒。
mcuku 阿沐 · 2026-09-03