当前位置: 首页 > news >正文

桌面小屏幕实战课程:DesktopScreen 8 非易失性存储器NVS

飞书文档http://https://x509p6c8to.feishu.cn/docx/doxcnMFLIvzob6qCJPQQvRnlelf

非易失性存储器

/home/kemp/work/esp/esp-idf/examples/storage/nvs_rw_blob

源码下载方式参考:

源码下载方式

NVS 分区生成程序 - - ‒ ESP-IDF 编程指南 release-v4.1 文档

/* Non-Volatile Storage (NVS) Read and Write a Value - ExampleFor other examples please check:https://github.com/espressif/esp-idf/tree/master/examplesThis example code is in the Public Domain (or CC0 licensed, at your option.)Unless required by applicable law or agreed to in writing, thissoftware is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES ORCONDITIONS OF ANY KIND, either express or implied.
*/
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "nvs_flash.h"
#include "nvs.h"
#include "esp_log.h"#include "ds_nvs.h"
#include "ds_system_data.h"static const char *TAG = "ds_nvs";NVS_WIFI_INFO_E wifi_config_flag = NVS_WIFI_INFO_NULL;void ds_nvs_save_wifi_info(){esp_err_t err;nvs_handle_t nvs_handle;err = nvs_open("wificonfig", NVS_READWRITE, &nvs_handle);if (err != ESP_OK) {ESP_LOGI(TAG,"Error (%s) opening NVS handle!\n", esp_err_to_name(err));return ;}wifi_config_flag = NVS_WIFI_INFO_SAVE;ESP_ERROR_CHECK(nvs_set_u8(nvs_handle, "wifi_flag", wifi_config_flag));ESP_ERROR_CHECK(nvs_set_str(nvs_handle, "ssid", get_system_data().setting_ssid));ESP_ERROR_CHECK(nvs_set_str(nvs_handle, "psw",  get_system_data().setting_psw));ESP_ERROR_CHECK(nvs_commit(nvs_handle));nvs_close(nvs_handle);
}NVS_WIFI_INFO_E ds_nvs_read_wifi_info(){esp_err_t err;nvs_handle_t nvs_handle;err = nvs_open("wificonfig", NVS_READWRITE, &nvs_handle);if (err != ESP_OK) {ESP_LOGI(TAG,"Error (%s) opening NVS handle!\n", esp_err_to_name(err));return NVS_WIFI_INFO_ERROR;}uint8_t wifi_config = 0;ESP_ERROR_CHECK(nvs_get_u8(nvs_handle, "wifi_flag", &wifi_config));wifi_config_flag = wifi_config;if(wifi_config_flag == NVS_WIFI_INFO_SAVE){ESP_LOGI(TAG,"has wifi config info");char ssid[32];char psw[64];size_t ssid_len = sizeof(ssid);size_t psw_len = sizeof(psw);ESP_ERROR_CHECK(nvs_get_str(nvs_handle, "ssid", ssid, &ssid_len));ESP_ERROR_CHECK(nvs_get_str(nvs_handle, "psw", psw, &psw_len));set_system_data_wifi_info(ssid,ssid_len,psw,psw_len);print_system_data_wifi_info();}else{ESP_LOGI(TAG,"wifi config info null");}nvs_close(nvs_handle);return wifi_config_flag;
}void ds_nvs_init(){// Initialize NVSesp_err_t err = nvs_flash_init();if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {// NVS partition was truncated and needs to be erased// Retry nvs_flash_initESP_ERROR_CHECK(nvs_flash_erase());err = nvs_flash_init();}ESP_ERROR_CHECK( err );
}
http://www.lqws.cn/news/509131.html

相关文章:

  • 市面上重要的AI开发工具和框架
  • C++038(指针)
  • ci | cd
  • OpenHarmony如何获取app_signature证书指纹
  • jenkinsfile调用groovy
  • 如何为虚拟机上的 Manjaro Linux启用 VMware 拖放功能
  • API测试工具Parasoft SOAtest:应对API变化,优化测试执行
  • 简单项目 esp8266 红外接收 2025年6月24日21:35:32
  • JavaScript 存储对象 sessionStorage (会话存储) 和 localStorage(本地存储)
  • 正点原子——直流无刷电机-霍尔传感基本实现流程
  • WEB安全--Java安全--jsp webshell免杀1
  • leetcode114-二叉树展开为链表
  • 人机交互动画制作新突破!文本驱动扩散框架HOIDiNi:一句话驱动虚拟人高精度操作物体。
  • 美团小程序闪购 mtgsig1.2
  • 关于 Babel 编译后的 Generator 状态机结构解析
  • 读取ILA数据进行MATLAB分析
  • 软件行业如何权衡“统一规范“与“灵活创新“?
  • Vue.js 列表过滤实现详解(watch和computed实现)
  • PYTHON从入门到实践4-数据类型
  • 原子操作(CAS)
  • OSS跨区域复制灾备方案:华东1到华南1的数据同步与故障切换演练
  • 嵌入式开发学习日志Day8(ARM体系架构——按键、蜂鸣器及中断)
  • 【bug】searchxng搜索报错Searx API returned an error
  • Vue项目使用defer优化页面白屏,性能优化提升,秒加载!!!
  • java-SpringBoot框架开发计算器网页端编程练习项目【web版】
  • QT多线程
  • Git 子模块 (Submodule) 完全使用指南
  • 烟花爆竹生产企业库房存储安全风险预警系统
  • 【Pandas】pandas DataFrame update
  • 【Docker基础】Docker容器管理:docker stop详解