ESP32非易失性存储整型数据笔记
基于ESP-IDF4.1
1 #include <stdio.h>
2 #include "freertos/FreeRTOS.h"
3 #include "freertos/task.h"
4 #include "esp_system.h"
5 #include "nvs_flash.h"
6 #include "nvs.h"
7
8 void app_main(void)
9 {
10 // 初始化非易失性存储
11 esp_err_t err = nvs_flash_init();
12 if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
13 // NVS分区被截断,需要擦除并重新初始化
14 ESP_ERROR_CHECK(nvs_flash_erase());
15 err = nvs_flash_init();
16 }
17 ESP_ERROR_CHECK( err );
18
19 // 打开
20 printf("\n");
21 printf("Opening Non-Volatile Storage (NVS) handle... ");
22 nvs_handle_t my_handle;
23 err = nvs_open("storage", NVS_READWRITE, &my_handle);
24 if (err != ESP_OK) {
25 printf("Error (%s) opening NVS handle!\n", esp_err_to_name(err));
26 } else {
27 printf("Done\n");
28
29 // 读取
30 printf("Reading restart counter from NVS ... ");
31 int32_t restart_counter = 0; // NVC中没有设置值得话,需要设置默认值为0
32 err = nvs_get_i32(my_handle, "restart_counter", &restart_counter);
33 switch (err) {
34 case ESP_OK:
35 printf("Done\n");
36 printf("Restart counter = %d\n", restart_counter);
37 break;
38 case ESP_ERR_NVS_NOT_FOUND:
39 printf("The value is not initialized yet!\n");
40 break;
41 default :
42 printf("Error (%s) reading!\n", esp_err_to_name(err));
43 }
44
45 // 写入
46 printf("Updating restart counter in NVS ... ");
47 restart_counter++;
48 err = nvs_set_i32(my_handle, "restart_counter", restart_counter);
49 printf((err != ESP_OK) ? "Failed!\n" : "Done\n");
50
51 //提交写入的值,其它时间提交写入没有保证
52 printf("Committing updates in NVS ... ");
53 err = nvs_commit(my_handle);
54 printf((err != ESP_OK) ? "Failed!\n" : "Done\n");
55
56 // 关闭
57 nvs_close(my_handle);
58 }
59
60 printf("\n");
61
62 // 设备重启
63 for (int i = 10; i >= 0; i--) {
64 printf("Restarting in %d seconds...\n", i);
65 vTaskDelay(1000 / portTICK_PERIOD_MS);
66 }
67 printf("Restarting now.\n");
68 fflush(stdout);
69 esp_restart();
70 }
原文:https://gitee.com/EspressifSystems/esp-idf
ESP32非易失性存储整型数据笔记的更多相关文章
- 使用程序获取整型数据和浮点型数据在内存中的表示---gyy整理
使用程序获取整型数据和浮点型数据在内存中的表示. C++中整型(int).短整型(short int).单精度浮点数(float).双精度浮点数(double)在内存中所占字节数不同,因此取值范围也不 ...
- strtoul (将字符串转换成无符号长整型数)
strtoul strtoul (将字符串转换成无符号长整型数) 相关函数 atof,atoi,atol,strtod,strtol 表头文件 #include<stdlib.h> 定义函 ...
- ESP32省电模式连接WIFI笔记
基于ESP-IDF4.1版本 main.c文件如下: #include <string.h> #include "freertos/FreeRTOS.h" #inclu ...
- 实验12:Problem H: 整型数组运算符重载
Home Web Board ProblemSet Standing Status Statistics Problem H: 整型数组运算符重载 Problem H: 整型数组运算符重载 Tim ...
- PHP中IP地址与整型数字互相转换详解
这篇文章主要介绍了PHP中IP地址与整型数字互相转换详解,本文介绍了使用PHP函数ip2long与long2ip的使用,以及它们的BUG介绍,最后给出自己写的两个算法,需要的朋友可以参考下 IP转换成 ...
- c# 计算一个整型数组的平均
一个整型数组的平均: class Program { static void Main(string[] args) { ,,,,,,,,,}; double avg= GetAvg(array); ...
- 使用头文件climits中的符号常量获知整型数据的表数范围---gyy整理
在头文件climits(limits.h)以宏定义的方式定义了各种符号常量来表示各种整型类型表示数的范围,如int的最大最小值,long的最大最小值等. 符号常量 表示 CHAR_BIT char 的 ...
- Java 判断是否为汉字 判断是否为乱码 判断字符串是否为双整型数字 整数 数字
/** * 判断是否为汉字 * * @param str * @return */ public static boolean isGBK(String str) { char[] ch ...
- Java整型数组的最大长度到底有多长?
Java整型数组的最大长度到底有多长? 今天上网查了一下,各种说法都有,这个问题似乎总困扰我们Java初学者,无奈,只好自己试了一下,以下是我的测试代码,如果有错误,还望不吝赐教! 使用eclipse ...
随机推荐
- devgridContral
#region 加载gridControl布局项 /// <summary> /// 加载gridControl布局项 /// </summ ...
- SystemVerilog数组(一)
- urllib2连接超时设置
#urllib2设置超时 #获取网页的源码 def getHtml(url,i): if i > 2: return try: req = urllib2.Request(url) time.s ...
- GO语言异常处理01---恐慌的报出与处理
package main import ( "fmt" "math" ) /*自己报出恐慌的语法*/ func main021() { fmt.Println( ...
- Python脚本语言写法
Python脚本语言写法 脚本语言的开始行,是指文件中的代码用什么可执行程序去运行它,就这么简单. #!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的pyth ...
- YOLOv3和YOLOv4长篇核心综述(上)
YOLOv3和YOLOv4长篇核心综述(上) 对目标检测算法会经常使用和关注,比如Yolov3.Yolov4算法. 实际项目进行目标检测任务,比如人脸识别.多目标追踪.REID.客流统计等项目.因此目 ...
- VB 老旧版本维护系列---迷之集合- ArrayList
迷之集合- ArrayList '定义一个字符串 Dim dataType_ImageStr As String = "2023,2091,2092,2096,2212" '将字符 ...
- 实战SpringBoot Admin
长话短说哦,直接查看下文吧 目录 声明 先锋 前提 SpringBoot Admin 介绍 服务端的搭建 客户端的搭建 参数的指南 尾声 声明 见名知意,实战SpringBoot Admin,实战!实 ...
- P2033 Chessboard Dance
题目描述 在棋盘上跳舞是件有意思的事情.现在给你一张国际象棋棋盘和棋盘上的一些子以及你的初始位置和方向.求按一定操作后,棋盘的状态. 操作有四种,描述如下: move n n是非负整数,表示你按目前所 ...
- Java课程设计-算术运算测试(D级) 齐鲁工业大学 计科20-1 王瀚垠 202003010033
Java课程设计-算术运算测试(D级) 齐鲁工业大学 计科20-1 王瀚垠 202003010033 目录 1.项目简介 2.项目采用技术 3.功能需求分析 4.项目亮点 5.项目功能架构图和UML类 ...