在ESP32低功耗模式下,配置RTC唤醒源并保持WiFi快速重连,关键在于区分深度睡眠(Deep Sleep)和轻度睡眠(Light Sleep)。对于深度睡眠,WiFi会断开,需在唤醒后重新初始化WiFi并连接,建议使用ESP32的RTC内存保存连接参数(如SSID、密码、IP),并启用WiFi快速连接(esp_wifi_set_ps(WIFI_PS_NONE))以减少扫描时间。配置RTC唤醒:使用esp_sleep_enable_timer_wakeup(时间微秒)或外部GPIO唤醒(esp_sleep_enable_ext0_wakeup)。唤醒后,先初始化NVS和WiFi,调用esp_wifi_connect(),并设置连接超时(如10秒),失败则重试。对于轻度睡眠,WiFi可保持连接,但需启用WiFi Modem Sleep(esp_wifi_set_ps(WIFI_PS_MIN_MODEM)),并配置RTC定时器唤醒,唤醒后无需重连,但需处理网络延迟。实操建议:使用esp_timer或RTC定时器,避免频繁唤醒;在唤醒回调中先检查WiFi状态,若断开则快速重连。
mcuku 阿沐 · 2026-08-27