NVS是什么参考这个:https://blog.csdn.net/xuanze0/article/details/79486512

总的来说,就是非易失性存储,类似MCU EEPROM,但实际上调用ESP32这些函数,数据是存储在FLASH中的。

它的管理方式类似数据库的表,在NVS里面可以存储很多个不同的表,每个表下面有不同的键值,每个键值可以存储8位,

16位,32位等等不同的数据类型,但不能是浮点数。

NVS相关API使用方法如下:

(1)初始化

调用“nvs_flash_init();”,如果失败可调用“nvs_flash_erase()”擦除NVS,然后再次初始化。

(2)打开一个表

nvs_open("List", NVS_READWRITE, &my_handle);

这个API第一个形参为一个字符串,可称为表名。第二个是读写模式,可选读写或者只读,第三个是当前打开的表的句柄。

如此声明:“nvs_handle my_handle;   ”。后面对表里面的键值进行读写,都需要输入键值所在表的句柄。

(3)读写

读:

nvs_get_i8(my_handle, "nvs_i8", &nvs_i8);

读写不同的数据类型需要调用不同的API,类似的API有:“nvs_get_i16”,“nvs_get_u32”等等

形参方面,第一个是表的句柄,第二个是键值,第三个则是对应的变量的指针,如“nvs_i8”是个“int8_t”类型的变量。

写:

nvs_set_i8(my_handle, "nvs_i8", nvs_i8);

基本跟读差不多,注意的是第三个形参变成了对应的变量,而不是变量的指针。

(4)提交与关闭

提交:

nvs_commit(my_handle);

关闭:

nvs_close(my_handle);

感觉跟FATFS文件系统操作差不多,写完文件都执行一个关闭的操作。

ESP32----NVS使用相关推荐

  1. Arduino框架下对ESP32 NVS非易失性存储解读以及应用示例

    Arduino框架下对ESP32 NVS非易失性存储解读以及应用示例 NVS非易失性存储库介绍 非易失性存储 (NVS) 库主要用于在 flash 中存储键值格式的数据.本文档将详细介绍 NVS 常用 ...

  2. ESP32 NVS同windows文件系统的类比,附上一段NVS操作的代码解析

    ESP32 NVS同windows文件系统的类比,附上一段NVS操作的代码解析 下面例程是在NVS区域记录ESP32重启次数. 源码是改写Hello_world官方例程: #include <s ...

  3. ESP8266/ESP32 NVS 基本操作

    NVS 介绍 NVS: Non-volatile storage , 即将数据存储到 flash 中, 掉电或重启后数据仍然存在,  flash 类似于 PC 上磁盘. ESP8266 和 ESP32 ...

  4. ESP32 nvs 加密

    由于部分用户在 nvs 中存储了一些安全性需求较高的数据,比如 cloud 对应的秘钥.希望在 flash 加密时同时开启 nvs 加密.此篇文章着重描述 nvs 加密需要进行的流程,大体分为以下三步 ...

  5. 乐鑫ESP32 NVS读错误BUG:nvs_get_blob

    描述: nvs_get_blob(nvshandle,"nvconfig0", phone_set_val.firststart,&phone_set_val_len); ...

  6. ESP32数据存储 nvs

    这个实验的功能是使用乐鑫提供的 nvs 库去对 spi flash 的读写. 这个实验的代码为工程"3_9_nvs"目录. 3.9.1. 实验内容 (1) 学习 NVS 库函数接口 ...

  7. 2021-11-24 micropython esp32休眠假死 唤醒 rtc nvs btree数据保持

    首先本次记录时MICROPYTHON 在ESP32环境下的记录,这里需要声明你使用的micropython 的版本固件不应该太古老,根据我的经验,有些早期固件不支持以下测试,或者不具备相应功能,固件嘛 ...

  8. ESP8266和ESP32的nvs操作自定义分区

    首先说一下ESP8266和ESP32 nvs的handle在声明的时候有些区别: ESP8266 RTOS中是:nvs_handle my_handle; ESP32的esp-idf中是:nvs_ha ...

  9. DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发

    esp32 开发 一. 芯片介绍 ESP32 是一套 Wi-Fi (2.4 GHz) 和蓝牙 (4.2) 双模解决方案,集成了高性能的 CPU 内核.超低功耗协处理器和丰富的外设.ESP32 采用 4 ...

  10. ESP32的FLASH、NVS、SPIFFS、OTA等存储分布以及启动过程

    今天我们来说说ESP32 for Arduino存储分布以及启动过程. ESP32 for Arduino存储分布 ESP32有多个不同的存储配置版本,本文以ESP32 4M FLASH为例进行分析. ...

最新文章

  1. MATLAB语法基础
  2. Maven添加Oracle的依赖及驱动
  3. filter,map,reduce,apply函数
  4. 最让人头疼的清洗数据过程----选择合适的方式快速命中所需的数据
  5. 【英语学习】【Daily English】U06 Shopping L02 What's the size?
  6. Android apk系列1-------APK签名
  7. Android基于高德地图poi的仿微信获取位置
  8. 全网最全流程面试解析 面试前必看!必收藏!
  9. 2021年计算机保研夏令营回忆(中科大、信工所、南开、天大)
  10. IDEA社区版没有spring Initializr
  11. python 日程管理程序_729. 我的日程安排表(Python)
  12. EPSON TM U220串口打印机乱码
  13. 用于深度学习的演化神经AutoML
  14. Error: Cannot find module ‘C:\Users\AppData\Roaming\npm\node_modules\..错误,解决方法
  15. https://api-hmugo-web.itheima.net 不在以下 request 合法域名列表中,请参考文档:https://developers.weixin.qq.com/minip
  16. XILINX FPGA时钟资源
  17. Halcon中关于角度计算的算子详解
  18. 制作一个简单HTML红色喜庆邀请函网页(HTML+CSS)
  19. ubuntu安装软件失败无法安装其他软件的解决办法
  20. 烽火通信C语言笔试题:牛市区间问题

热门文章

  1. dll修复精灵无法链接服务器,教你一键dll修复精灵怎么使用
  2. CAN收发器TJA1040简介
  3. 一些实用的功能强大的绘图软件
  4. 【笔记:Spring】
  5. 微信内置浏览器无法使用input图片上传和lrz.bundle.js图片压缩插件
  6. 从数据仓库到大数据,数据平台这25年是怎样进化的?[转]
  7. ElasticSearch安装、IK、映射、索引管理、搜索管理和集群管理
  8. Beaver's Calculator(蓝桥杯 算法训练)sort排序
  9. JavaScript中的垃圾回收和内存泄漏
  10. 估计标准误差syx_相关系数与估计标准误差的关系