当前位置: 首页 > 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 );
}

相关文章:

  • 贵阳市 网站建设厦门人才网最新招聘信息
  • 怎么做网站推广世界杯怎么做好网站搜索引擎优化
  • 秦皇岛城乡建设局网站网站宣传方法
  • 网站要注册为什么网站关键词排名分析
  • 什么网站可以做全景图seo权威入门教程
  • 网站 国外空间不需要icp许可证吗网站如何赚钱
  • 安卓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)------滑动窗口的最大值