在ESP32深度睡眠中,RTC内存(RTC_SLOW_MEM)与NVS分区(Flash)的数据可靠性差异显著。RTC内存由独立电源域供电,深度睡眠时保持供电,数据在唤醒后100%保留,且访问速度快(纳秒级),适合存储实时状态(如计数器、传感器校准值)。但RTC内存容量有限(约8KB),且断电(如电池耗尽)会丢失数据。NVS分区基于Flash,掉电不丢失,但写入需擦写操作,寿命有限(约10万次),且深度睡眠唤醒后需初始化NVS驱动,读取速度慢(毫秒级)。实操建议:对高频更新的临时数据(如运行计数)用RTC内存;对需长期保存的配置(如WiFi凭据)用NVS。注意,深度睡眠期间若VDD_RTC断电(如使用外部开关),RTC数据会丢失,此时必须依赖NVS。此外,NVS写入前需调用nvs_flash_init(),并处理CRC校验错误。
mcuku 阿沐 · 2026-08-27