在ESP32低功耗设计中,RTC内存(RTC_SLOW_MEM)与NVS分区是两种截然不同的掉电保存方案。RTC内存由RTC域供电,在Deep Sleep和Light Sleep下保持数据,但完全断电(VDD_RTC断开)会丢失,且容量有限(约8KB)。NVS基于Flash,掉电不丢,但写入有擦写寿命(约10万次)且每次写入需耗时(约50ms)。实操建议:若需高频保存小数据(如传感器累计值),优先用RTC内存,配合esp_sleep_get_wakeup_cause判断复位源;若保存配置参数或需跨完全断电保持,用NVS,并注意用nvs_set_blob批量写入减少磨损。实测中,Deep Sleep下RTC内存读写仅需微秒级,而NVS一次写入约100ms,功耗差异明显。建议混合使用:RTC存临时状态,NVS存关键配置,并在每次唤醒时同步。
mcuku 阿沐 · 2026-08-27