MicroPython ESP32NVS数据非易失性存储示例讲解说明
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MicroPython ESP32NVS数据非易失性存储示例讲解说明相关的知识,希望对你有一定的参考价值。
【MicroPython ESP32】NVS数据非易失性存储示例讲解说明
- ✨本案例基于Thonny平台开发。✨
📖NVS非易失性存储
🌿非易失性存储 (NVS) 库主要用于在 flash 中存储键值格式的数据。本文档将利用esp32
模块
中的 NVS类
里面的函数对数据进行存储、读写、删除操作示例讲解。
- 📍引用:
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/api-reference/storage/nvs_flash.html
📝 NVS类函数解读
📌通过
Thonny
软件平台,在Shell
调试窗口使用help
命令查询NVS类的的相关参数:
- 🎄Mciropython ESP32 NVS官方介绍文档::
https://docs.micropython.org/en/latest/library/esp32.html?highlight=nvs#esp32.NVS
- ⛳NVS类的成员对象
- 📑
NVS.set_i32(key, value)
:在实例化的命名空间中存入一个键值对,值必须为32位有正负的整数。 - 📑
NVS.get_i32(key)
:#在实例化的空间中获取key
(所有键名都为字符串类型
)的值,返回指定键的带符号整数值。如果键不存在或具有不同类型,则引发OSError
。 - 📑
NVS.get_blob(key, buffer)
:将指定键的blob的值读入缓冲区,缓冲区必须是一个bytearray
。返回实际读取的长度。如果键不存在,具有不同的类型,或缓冲区太小,将引发OSError
。 - 📑
NVS.set_blob(key, value)
:设置指定键的二进制blob值。传入的值必须支持缓冲区协议,例如bytes, bytearray, str(注意esp-idf区分blob和string,这个方法总是写入blob,即使字符串作为值传入。)记得最后使用NVS.commit()
提交保存 - 📑
NVS.erase_key(key)
:删除键值对。 - 📑
NVS.commit()
:提交并保存。
⛳示例
from esp32 import NVS
value=NVS('spacename') # spacename是命名空间,也就是实例化的开辟了一个叫spacename的存储空间
value.set_i32('ID',9527) # 在实例化的命名空间中存入一个键值对,值必须为32位有正负的整数 'ID':9527
value.set_blob('name','perseverance') #存入一个字符串型的键值对
value.commit() # 把存好的数据刷入实例化的命名空间,提交并保存。
if __name__=='__main__':
ID_value=value.get_i32('ID') #在实例化的空间中取出'ID'的值
print(ID_value)
buf = bytearray(12) #准备缓冲区,大小为12(长度一定要大于后等于要接收的数据长度)
len=value.get_blob('name',buf)
print(len)
print(buf)# 打印bytearray
print(buf.decode('utf-8'))#bytearray转string
# value.erase_key('name') #删除这个键值
Shell
调试窗口信息
以上是关于MicroPython ESP32NVS数据非易失性存储示例讲解说明的主要内容,如果未能解决你的问题,请参考以下文章