基于ESP-IDF4.1
1 #include
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('Donen');
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('Donen');
36 printf('Restart counter = %dn', 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' : 'Donen');
50
51 //提交写入的值,其它时间提交写入没有保证
52 printf('Committing updates in NVS ... ');
53 err = nvs_commit(my_handle);
54 printf((err != ESP_OK) ? 'Failed!n' : 'Donen');
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 }
上一篇:ESP32存储blog笔记
下一篇:ESP32智能配网笔记
推荐阅读最新更新时间:2026-03-25 12:54
- 用于 7VIN 至 16VIN、1.5V 和 1.2V 输出的 LTM4628EV DC/DC 模块稳压器的典型应用电路
- 使用 Analog Devices 的 LTC3728LIGN 的参考设计
- DER-406 - 适用于 A19 灯的 5.76 W 高 PF 非隔离降压-升压型 TRIAC 调光 LED 驱动器
- ADR5045B 5V 输出精密微功率并联模式电压基准的典型应用
- LT3970EDDB-3.42 2.5V 降压转换器的典型应用
- MC78M08BDTG 8V 电流调节器的典型应用
- LT1021DCN8-5 精密电压基准的典型应用
- DER-282 - 100W, 扁平(11 mm), LLC DC-DC转换器
- REF193 低压差开尔文连接电压基准的典型应用电路
- LT3088EM 线性稳压器用于添加软启动的典型应用

【Follow me第三季第3期】代码
【Follow me第三季第3期】XIAO ESP32S3任务代码提交
Follow me第三季第3期源代码
非常经典的关于LLC的杨波博士论文
CLC5612IMX
1-292148-8






京公网安备 11010802033920号