> 文章列表 > ESP32学习笔记12--NVS

ESP32学习笔记12--NVS

ESP32学习笔记12--NVS

15.NVS

15.1概述

  • 非易失性存储 (NVS) 库主要用于在 flash 中存储键值格式的数据
  • NVS 最适合存储一些较小的数据,而非字符串或二进制大对象 (BLOB) 等较大的数据
  • 字符串值当前上限为 4000 字节,其中包括空终止符。BLOB 值上限为 508,000 字节或分区大小的 97.6% 减去 4000 字节,以较低值为准
  • 为了减少不同组件之间键名的潜在冲突,NVS 将每个键值对分配给一个命名空间
  • 单个 NVS 分区最多只能容纳 254 个不同的命名空间
  • 不同 NVS 分区中具有相同名称的命名空间将被视为不同的命名空间。

迭代

  • 迭代器允许根据指定的分区名称、命名空间和数据类型轮询 NVS 中存储的键值对
  • nvs_entry_find:创建一个不透明句柄,用于后续调用 nvs_entry_nextnvs_entry_info 函数;
  • nvs_entry_next:让迭代器指向下一个键值对;
  • nvs_entry_info:返回每个键值对的信息
  • 所有通过 nvs_entry_find() 获得的迭代器(包括 NULL 迭代器)都必须使用 nvs_release_iterator() 释放

15.2 nvs 相关的结构和函数

15.2.1nvs打开模式


```c
typedef enum {N