ESP32-C3模组上跑通NVS(1)

2024-06-04 10:12
文章标签 esp32 模组 c3 nvs

本文主要是介绍ESP32-C3模组上跑通NVS(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文内容参考:

非易失性存储库 - ESP32 - — ESP-IDF 编程指南 latest 文档

【ESP-IDF】介绍NVS_esp-idf是什么-CSDN博客

12-ESP32-S3 的 NVS(Non-Volatile Storage)_esp32-s3 nvs-CSDN博客

ESP32-C3入门教程 基础篇(八、NVS — 非易失性存储库的使用)_esp入门教学-CSDN博客

特此致谢!

一、认识NVS

1. 简介

NVS的英文全称为Non-Volatile Storage,中文译为非易失性存储(库)。通俗地来讲,NVS就是在Flash上分配的一块内存空间,提供给用户保存掉电不丢失的数据。NVS主要用于在Flash中存储键值格式的数据。

NVS是一种用于在嵌入式系统中保存持久化数据的键值存储库。在ESP-IDF中,NVS提供了一种简单且有效的方法来在ESP32芯片上保存和读取配置信息、状态数据、用户设置等应用程序数据,以便在设备重新启动或断电后能够恢复状态。

NVS在ESP-IDF中具有以下特点和优点:

  • 非易失性

NVS中的数据在芯片断电或重新启动后仍然保持不变、不会丢失,适合保存需要长期存储的数据。

  • 键值对存储

NVS使用简单的键值对(Key-Value)结构来保存数据,方便进行读取和写入操作。

  • 分区管理

NVS将数据存储在不同的分区中,可以根据需要创建多个独立的NVS分区,用于不同的数据类型或应用场景,实现数据隔离和管理。

  • API丰富

ESP-IDF提供了丰富的NVS API,包括读取、写入、删除、遍历等操作,方便开发者进行数据的处理和管理。使用NVS的API不仅可以对NVS分区进行操作,也可以对任意的分区进行操作

学习和使用ESP-IDF中的NVS可以带来以下好处:

  • 持久化数据存储

NVS允许开发者将配置信息、状态数据等持久化保存在芯片中,即使设备断电或重新启动,数据也能够得到保留,从而避免了数据丢失的情况。

  • 简单高效的数据管理

NVS提供了简单易用的API,可以方便地进行数据的读取、写入、删除等操作,减少了开发复杂性和提高了代码效率。

  • 数据隔离和管理

NVS支持多个分区的管理,可以将不同类型的数据存储在不同的分区中,实现数据隔离和管理,便于维护和升级。

  • 节省存储空间

NVS采用了紧凑的键值对结构,可以高效地利用芯片内部的存储空间,避免了使用外部存储器的成本和复杂性。

2. 键值对

NVS是ESP32-C3 Flash(Flash就是板子上的一个存储芯片,对于ESP32-C3来说是SPI Flash)中的一个存储分区,我们可以在其中存储键值对(Key-Value pairs)。每个键值对都有一个唯一的键名(key name)和一个对应的值(value)。这种组合类似于哈希表的(key-value)对应结构,或可以将其类比理解成电脑上的文件名和内容的对应关系。

NVS的操作对象为键值对,其中键是ASCII字符串,当前支持的最大键长为15个字符。值可以为以下几种类型:

  • 整数型:uint8_tint8_tuint16_tint16_tuint32_tint32_tuint64_t 和 int64_t

  • 以 0 结尾的字符串;

  • 可变长度的二进制数据(BLOB)。

当前支持的最大值长为:字符串值上限为4000字节,其中包括空终止符;BLOB值上限为508000 字节或分区大小的97.6%减去4000 字节,以较低值为准。

后续可能会增加对 float 和 double 等其他类型数据的支持。

注:

(1)键必须唯一。为现有的键写入新值时,会将旧的值及数据类型更新为写入操作指定的值和数据类型。

(2)读取值时会执行数据类型检查。如果读取操作预期的数据类型与对应键的数据类型不匹配,则返回错误。

更多内容请看下回。

这篇关于ESP32-C3模组上跑通NVS(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1029786

相关文章

摄像头模组介绍和技术指标

1 手机摄像头概述 1.1 手机摄像头概述  手机的数码相机功能指的是手机是否可以通过内置或是外接的数码相机进行拍摄静态图片或短片拍摄,作为手机的一项新的附加功能,手机的数码相机功能得到了迅速的发展。 手机摄像头分为内置与外置,内置摄像头是指摄像头在手机内部,更方便。外置手机通过数据线或者手机下部接口与数码相机相连,来完成数码相机的一切拍摄功能。 外置数码相机的优点在于可以减轻手机的重

WIN11 ESP32 IDF + VSCODE 环境搭建[教程向]

前言 目录 前言 安装ESP32-IDF VSCODE插件安装 编译测试 很多时候我们想学习一门新的技能,需要使用全新的开发环境,很多时候我们会在安装环境这个环节卡住很久,这里简单介绍一下ESP32+VSCODE环境搭建。 安装ESP32-IDF https://dl.espressif.cn/dl/esp-idf/?idf=4.4 直接复制上面链接,进入idf下载界面。

Banana Pi BPI-SM9 AI 计算模组采用算能科技BM1688芯片方案设计

产品概述 香蕉派 Banana Pi BPI-SM9 16-ENC-A3 深度学习计算模组搭载算能科技高集成度处理器 BM1688,功耗低、算力强、接口丰富、兼容性好。支持INT4/INT8/FP16/BF16/FP32混合精度计算,可支持 16 路高清视频实时分析,灵活应对图像、语音、自然语言等场景,可集成于智算服务器、边缘智算盒、工控机、无人机、AIOT等多种类型产品。 Banana

Class4——Esp32|Thonny两种方式同过电脑控制LED灯,路由器与电脑自带热点连接ESP32

上一节我们通过路由器和设备创建了连接,不懂可按上节配置 Class3——Esp32|Thonny——网络连接主机-wifi连接(源代码带教程)-CSDN博客文章浏览阅读57次。Esp32|Thonny网络连接主机-wifi连接(源代码带教程)https://blog.csdn.net/m0_66701835/article/details/141960572?spm=1001.2014.3001

移远通信高端5G智能模组SG560D-NA率先通过PTCRB认证

近日,移远通信宣布,其基于高通QCM6490平台打造的高端5G智能模组SG560D-NA顺利通过PTCRB认证。 在此之前,该模组还获得了美国FCC和加拿大IC认证,这意味着,其已完全满足北美地区的相关标准和规定,能够支持相关智能设备在该区域高效稳定运行,助力客户快速开拓北美市场。 高端5G,性能领航 SG560D-NA基于高通QCM6490平台开发,搭载高性能八

物联网之ESP32控制舵机、通过网页设置舵机角度、Web服务、舵机原理、接线、Arduino、WiFi、Http

MENU 前言原理硬件电路设计软件程序设计LEDC输出PWM信号使用第三方库控制舵机网页控制舵机 前言 舵机在电子产品中非常常见,比如四足机器人、固定翼航模等都有应用,因此学习舵机对电子制作非常有意义。本文章使用Arguino的PWM对SG90舵机旋转角度控制。 原理 舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。舵机只

英伟达本月启动RTX 5080/90预案 600W散热模组推进中

据供应链最新消息称,英伟达将在本月开始RTX 5090、5080的宣传预案,而AIC合作伙伴会陆续收到相关资料。按照消息人士的说法,英伟达将在明年1月的CES大会上,正式发布RTX 5090、5080等重磅显卡。 按照散热模组厂商的说法,面向英伟达显卡的600W散热模组方案正持续推进,而400W功耗方案目前处于取消或搁置状态,此外目前共有5个英伟达显卡散热方案正在开发中。 这似乎也从侧面印证

乐鑫 ESP32-P4 无线连接解决方案

ESP32-P4 是乐鑫信息科技推出的一款功能强大的芯片 (SoC) ,专为高性能的应用打造。尽管 ESP32-P4 集成了一系列先进特性,但它并未设置无线连接功能,因此需要额外的连接方案来满足嵌入式系统的多样化需求。乐鑫为 ESP32-P4 提供了三种主要的连接方案:ESP-AT、ESP-Hosted 和 ESP-Extconn。下面我们来探讨每种解决方案的优势、限制和使用场景。 ESP-AT

ESP32!Thonny+MicroPython+ESP32开发环境搭建!!

准备工具: Thonny+MicroPython+ESP32 一.Thonny安装 下载地址:Thonny, Python IDE for beginnershttps://thonny.org/ 二.下载esp32环境——根据型号下载 下载地址:MicroPython - Python for microcontrollershttps://micropython.org/downlo

鹏程万里------esp32 开发编译和烧录

首先编译demo 打开C:\msys32目录下的mingw32.exe然后执行下面的操作 DZ0012+Administrator@DZ0012 MINGW32 ~ # cd .. DZ0012+Administrator@DZ0012 MINGW32 /home # ls Administrator DZ0012+Administrator@DZ0012 MINGW32 /home #