• 【MicroPython ESP32】NVS数据非易失性存储示例讲解说明


    【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') #删除这个键值
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • Shell调试窗口信息

    在这里插入图片描述

  • 相关阅读:
    如何维护知乎口碑?小马识途解析知乎口碑优化的技巧
    神经网络中的参数量和FLOPs的计算
    8-12外部排序
    放下宝宝就醒,告诉你是因为什么
    读HDF5格式的文件
    ESP8266-Arduino网络编程实例-发送邮件(基于SMTP)
    MacOS装载APFS移动硬盘出现49180错误
    Linux内核Kernel启动过程
    java计算机毕业设计高校人事管理系统源码+数据库+系统+lw文档+部署
    Nim 枚举类型 对性能的影响
  • 原文地址:https://blog.csdn.net/weixin_42880082/article/details/126656614