在ESP32低功耗模式下,RTC内存用于保持数据,而UART唤醒通常依赖GPIO中断或UART外设的特定唤醒源。冲突源于UART唤醒需要保持UART外设或GPIO中断活跃,这会增加功耗,与深度睡眠的RTC-only模式矛盾。解决建议:1) 使用ESP32的light sleep模式,它支持UART唤醒且RTC内存保留,功耗约0.8mA,适合中等功耗需求;2) 若必须用deep sleep,改用EXT1 GPIO唤醒(如UART RX引脚连接外部逻辑,检测下降沿),同时将关键数据存入RTC内存,唤醒后重新初始化UART;3) 配置UART的wakeup功能时,确保启用UART的RX引脚作为唤醒源,并设置正确的wakeup threshold(如检测到起始位),但注意这仅适用于light sleep。实操中,建议先测量功耗,若UART唤醒需求频繁,优先light sleep;若需极低功耗,则用GPIO唤醒+轮询UART。
mcuku 阿沐 · 2026-08-27