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

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

涨知识
步进电机

步进电机是将电脉冲信号,转变为角位移或线位移的开环控制电机,又称为脉冲电机。

评论:
相关文章
Arduino-ESP32与ESP-IDF的版本对应表

Arduino-ESP32与ESP-IDF的版本对应表。


Arduino-ESP32文件系统全解析:SPIFFS、LittleFS、SD卡操作

Arduino-ESP32提供了多种文件系统解决方案,本文将深入解析SPIFFS、LittleFS和SD卡三种主流存储方案,帮助你做出最佳选择。


ESP32-P4-WIFI6开发板

ESP32-P4-WIFI6-DEV-KIT是一款微雪(Waveshare)设计的基于 ESP32-P4 的多媒体开发板,并集成 ESP32-C6,支持 Wi-Fi 6 和 BLE 5 无线连接。它提供丰富的人机交互接口,包括 MIPI-CSI (集成图像信号处理器 ISP)、MIPI-DSI、SPI、I2S、I2C、LED PWM、MCPWM、RMT、ADC、UART 和 TWAI 等。


ESP-Hosted 入门介绍 &使用指南

ESP-Hosted 解决方案提供了将 ESP 板用作 Wi-Fi 和 Bluetooth/BLE 连接的通信处理器的方法。


设备上云太麻烦?ESP-Hosted一站触达!

ESP-Hosted 提供了一种将ESP芯片和模组用作通信协处理器的解决方案,该解决方案为主机微处理器或微控制器提供无线连接,使主机能够与其他设备通信。简单来说为网卡方案。


ESP32 + Arduino使用TFT_eSPI库

Arduino+ESP32上使用TFT_eSPI库快速点亮这个屏幕,驱动芯片ST7789


ESP32 利用 SPI 连通 TFT 彩屏

本文给出了一个ESP32与SPI 接口TFT显示屏接线的详细说明,供大家参考。


在Micropython下使用ESPNow功能进行数据传输

本文讲解如何在Micropython环境下使用ESP32的ESPNow功能进行数据传输。


用 ESP32-S3 打造多功能 USB Dongle

ESP-Dongle 是一款基于 ESP32-S3 芯片开发的多功能 USB Device 解决方案。它不仅外形小巧,功能齐全,更集成了无线 U 盘、SD 卡读取以及 USB 无线网卡等多项功能。


利用 ESP32-S3 和 CSI 技术打造智能家居

ESP32 系列芯片可以利用 CSI 数据实现动作检测和存在检测。无论是自动调节灯光、风扇,还是节能控制,CSI 技术为智能家居带来了新的可能性。随着 CSI 技术的发展,未来的智能家居将能够更精确地感知和响应我们的行为,实现更高效、更人性化的控制。