当前位置: 首页 > 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.dtcms.com/a/258552.html

相关文章:

  • 安卓9.0系统修改定制化____安卓9.0修改 默认开启开发者选项与usb调试的操作步骤解析 十一
  • Vue项目使用defer优化页面白屏,性能优化提升,秒加载!!!
  • 大白话蓝牙中的RPC:Remote Procedure Call远程过程调用
  • 夏季小学期
  • DEYOLO 全面复现,将双增强跨模态目标检测网络 DEYOLO 融合到 YOLOFuse 框架
  • 微信小程序节点相关总结
  • 入门级STM32F103C8T6无人机(原理图其一)
  • Proteus 8.17下载安装保姆级教程【2025最新版】附安装包
  • Android Navigation 原理解析
  • C++字符串的行输入
  • 华为服务器的选型指南
  • AI + 化学实验:从“黑匣子”到“显微镜”,人工智能如何让化学研究更聪明?
  • TouchDIVER Pro触觉手套:虚拟现实中的多模态交互新选择
  • day41/60
  • OSS大数据分析集成:MaxCompute直读OSS外部表优化查询性能(减少数据迁移的ETL成本)
  • Springboot项目中使用手机号短信验证码注册登录实现
  • Starrocks 低基数全局字典优化
  • 【stm32】标准库学习——USART串口
  • 攻防世界-MISC-MeowMeowMeow
  • C++面试题(46)------滑动窗口的最大值
  • vue 路由学习
  • Python核心库Pandas详解:数据处理与分析利器
  • 【最新实时目标检测YOLOv13添加PyQt可视化界面】
  • 旁挂式集中转发AC基础配置
  • 对手机屏中断路和短路的单元进行切割或熔接,实现液晶线路激光修复原理
  • 《贵州棒垒球》有什么国家级比赛·棒球1号位
  • Qt面试题汇总
  • 集成 Odoo、n8n 与 Dify,实现智能业务流程自动化
  • 通过环境变量管理多版本JDK8、11、17并安装idea编译器
  • 第十节 新特性与趋势-CSS层叠规则升级