ESP32 MicroPython存储数据到闪存

在MicroPython的ESP32库中,NVS类用于管理非易失性存储,支持 32 位有符号整数和 二进制blob。
在MicroPython的ESP32库中,NVS类用于管理非易失性存储。NVS 被划分为多个命名空间,每个命名空间都包含类型化的键值对。键是字符串,值可以是各种整数类型、字符串和二进制 blob。该库目前仅支持 32 位有符号整数和 blob。

对 NVS 的更改需要通过调用 commit 方法提交到 flash。未能调用 commit 会导致更改在下次重置时丢失。

1. 创建NVS空间

classesp32.NVS(namespace)
创建一个对象,提供对命名空间的访问(如果不存在,则会自动创建)。

2. 整数值的存取

NVS.set_i32(key, value)
为指定的键设置一个 32 位有符号整数值。记得调用commit!

NVS.get_i32(key)
返回指定键的有符号整数值。如果键不存在或具有不同的类型,则引发 OSError。


示例代码

import esp32

nvs = esp32.NVS('config')

# 存储
nvs.set_i32('key1', 1)
nvs.commit()

# 读取
n1 = nvs.get_i32('key1')
print(n1)

3. 二进制值的存取

NVS.set_blob(key, value)
为指定的键设置二进制 blob 值。传入的值必须支持缓冲协议,例如bytes、bytearray、str。(注意 esp-idf 区分 blob 和字符串,即使字符串作为值传入,此方法也始终写入 blob。)记住调用commit!

NVS.get_blob(key, buffer)
将指定键的 blob 值读入缓冲区,缓冲区必须是字节数组。返回读取的实际长度。如果键不存在、具有不同的类型或缓冲区太小,则引发 OSError。

示例代码

import esp32

nvs = esp32.NVS('config')

# 设置
nvs.set_blob('key2', 'hello world!')
nvs.commit()

# 读取
buf1 = bytearray(50)
len1 = nvs.get_blob('key2', buf1)
str1 = buf1[:len1].decode()
print(str1)


4. 其他

NVS.erase_key(key)
擦除键值对。

NVS.commit()
将set_xxx方法所做的更改提交到闪存。
- 本文为本站原创文章,转载请保留出处。
- 文章链接:https://www.xpstem.com/article/2000355

2025-07   阅读(239)   评论(0)
 标签: 创客 ESP32 MicroPython

涨知识
LED点阵屏

LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,是各部分组件都模块化的显示器件,通常由显示模块、控制系统及电源系统组成。

评论:
相关文章
【ESP32 C++教程】Unit2-2 Ws2812灯珠

本小节主要介绍Ws2812灯珠的使用、对父类进行扩展实现自定义功能,和指针向下强制转换的使用。


【ESP32 C++教程】Unit2-1 RGB三色LED

本小节主要介绍RGB三色LED的使用,以及多态的具体实现。


【ESP32 C++教程】Unit1-3 ESP32 Arduino 开发框架

ESP32 Arduino Framework是专门针对ESP32开发板的Arduino应用开发框架,为用户开发IOT应用、HMI应用提供一致的开发体验。


ESPConnect:基于浏览器的ESP32管理器

ESPConnect是一个基于现代浏览器的管理器,在你需要快速验证、调试、管理文件、检查状态的时候,它能帮你省下大量打开和切换重型工具的时间。


用ESP32做一个FM收音机

本文介绍两种使用TEA5767收音机模块实现FM收音机的方案,感兴趣的朋友可在此基础上实现更丰富的功能。


GPIOViewer:让ESP32引脚状态一览无余!

GPIOViewer 是一个强大的 Arduino 库,专门为 ESP32 芯片设计,可以实时监控 ESP32 芯片上的所有 GPIO 引脚状态。它可以帮助你快速直观地了解每个引脚的当前状态,例如高电平、低电平、输入、输出、中断等等。


ESP32 I2S音频:初识I2S通信与配置基础

在音频处理领域,I2S是一种广泛使用的通信协议,它专门用于芯片之间的音频数据传输。ESP32 作为一款高性能的微控制器,不仅支持 I2S 通信,还提供了强大的硬件接口和灵活的软件库,使其成为音频项目开发的理想选择。


小鹏物联网自动浇花套件

小鹏物联网智能浇花系统是照顾植物的好帮手,支持自动控制和手动控制两种模式,可通过电脑端和手机端查看数据和控制浇水。


ESP32 Arduino 开发框架

Arduino开发环境下适用于ESP32芯片系列开发板的应用开发框架。


【ESP32 C++教程】Unit1-2 C++类基础知识

本小节主要介绍C++ 类相关的基础知识,包括类的定义、继承、多态,范围作用域等。