资源简介
乐鑫esp8266学习rtos3.0笔记第3篇: 一篇文章带你搞掂存储技术 NVS 的认识和使用,如何利用NVS保存整型、字符串、数组以及结构体。。 - CSDN博客 https://blog.csdn.net/xh870189248/article/details/88537666

代码片段和文件信息
#include
#include “esp_system.h“
#include
#include
#include
#include “freertos/FreeRTOS.h“
#include “freertos/task.h“
#include “freertos/event_groups.h“
#include “esp_wifi.h“
#include “nvs.h“
#include “esp_event_loop.h“
#include “esp_log.h“
#include “esp_err.h“
#include “nvs_flash.h“
#include “driver/gpio.h“
#include “driver/pwm.h“
#include “driver/uart.h“
static const char *TAG = “XuHongLog“;
//自定义一个结构体
typedef struct
{
char name[10];
int8_t age;
bool sex;
} User_Info;
//数据库的表名
static const char *TB_SELF = “Tb_Self“;
//保存与读取 int8_t 类型的 字段名
static const char *FILED_SELF_i8 = “int8_t_Self“;
//保存与读取 字符串类型的 字段名
static const char *FILED_SELF_Str = “str_Self“;
//保存与读取 数组类型的 字段名
static const char *FILED_SELF_Group = “group_Self“;
//保存与读取 结构体类型的 字段名
static const char *FILED_SELF_Struct = “struct_Self“;
/**
* @description: 读取数据进去nvs里面的任务
* @param {type}
* @return:
*/
static void Task_NVS_Read(void *pvParameters)
{
ESP_LOGI(TAG “--------------------------- Start Task_NVS_Read --------------------------“);
//NVS操作的句柄,类似于 rtos系统的任务创建返回的句柄!
nvs_handle mHandleNvsRead;
int8_t nvs_i8 = 0;
esp_err_t err = nvs_open(TB_SELF NVS_READWRITE &mHandleNvsRead);
//打开数据库,打开一个数据库就相当于会返回一个句柄
if (err != ESP_OK)
{
ESP_LOGE(TAG “Open NVS Table fail“);
vTaskDelete(NULL);
}
else
{
ESP_LOGI(TAG “Open NVS Table ok.“);
}
//读取 i8
err = nvs_get_i8(mHandleNvsRead FILED_SELF_i8 &nvs_i8);
if (err == ESP_OK)
ESP_LOGI(TAG “get nvs_i8 = %d “ nvs_i8);
else
ESP_LOGI(TAG “get nvs_i8 error“);
//读取 字符串
char data[65];
uint32_t len = sizeof(data);
err = nvs_get_str(mHandleNvsRead FILED_SELF_Str data &len);
if (err == ESP_OK)
ESP_LOGI(TAG “get str data = %s “ data);
else
ESP_LOGI(TAG “get str data error“);
//读取数组
uint8_t group_myself_read[8];
size_t size = sizeof(group_myself_read);
err = nvs_get_blob(mHandleNvsRead FILED_SELF_Group group_myself_read &size);
if (err == ESP_OK)
{
ESP_LOGI(TAG “get group_myself_read data OK !“);
for (uint32_t i = 0; i < size; i++)
{
ESP_LOGI(TAG “get group_myself_read data : [%d] =%02x“ i group_myself_read[i]);
}
}
//读取结构体
User_Info user;
memset(&user 0x0 sizeof(user));
uint32_t length = sizeof(user);
err = nvs_get_blob(mHandleNvsRead FILED_SELF_Struct &user &length);
if (err == ESP_OK)
{
ESP_LOGI(TAG “get user Struct name = %s !“ user.name);
ESP_LOGI(TAG “get user Struct age = %d !“ user.age);
ESP_LOGI(TAG “get user Struct sex = %d !“ user.sex);
}
//关闭数据库,关闭面板!
nvs_close(mHandleNvsRead);
ESP_LOGI(TAG “--------------------------- End Task_NVS_Read --------------------------“);
vTaskDelete(NULL);
}
/**
* @description: 创建一个写数据进去nvs里面的任务
* @param {type}
* @return:
*/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-03-13 16:43 34_ESP8266_Rtos3.0_NVS\
目录 0 2019-03-13 16:43 34_ESP8266_Rtos3.0_NVS\main\
文件 146 2019-03-02 21:00 34_ESP8266_Rtos3.0_NVS\main\component.mk
文件 545 2019-03-11 15:25 34_ESP8266_Rtos3.0_NVS\main\Kconfig
文件 7414 2019-03-13 16:40 34_ESP8266_Rtos3.0_NVS\main\user_main.c
文件 188 2019-03-02 21:00 34_ESP8266_Rtos3.0_NVS\Makefile
文件 8977 2019-03-13 11:26 34_ESP8266_Rtos3.0_NVS\sdkconfig
文件 8977 2019-03-13 11:25 34_ESP8266_Rtos3.0_NVS\sdkconfig.old
相关资源
- esp8266 win10驱动 cp2102
- CSDN文件---ESP8266.rar
- stm32103c8t6ESP8266串口转WIFI模块TCP服务器
- ESP8266ESP8266安卓控制端源代码
- nudemcu相关工具和固件测试稳定
- 单片机通过ESP8266上传温湿度数据
- STM32F407ZG_ESP8266例程
- ESP8266最新稳定版固件
- ESP8266AP模式控制51单片机亮灯.docx
- ESP8266使用MQTT协议连接阿里云
- 贝壳物联arduino esp8266 demo版本
- ESP8266程序加上MQTT调试工具
- ESP8266_NONOS_SDK-3.0
- ESP8266+OLED屏实现天气预报+温度显示
- stm32f7的esp8266spi并口源程序,速率1.
- ESP8266连接云平台
- STM32C8T6通过扫描二维码进行智能开锁
- ESP8266微信配网以及公众号绑定
- ESP8266一键烧写工具
- 手机与ESP8266WiFi模块进行通信
- ESP8266搭建MQTT客户端源码
- STM32接入OneNET代码
- 基于单片机控制的智能窗帘控制系统
- STM32-ESP8266-AT
- 毕设-基于ESP8266-12F家电控制系统设计
- 使用MSP432-ESP8266实现小车红外测距和数
- ESP8266_8285_32系列透传固件 JFirmwareESP
- ESP32、ESP8266/85增强型透传固件 JFirmw
- ESP8266-WIFI数据透传
- 基于stm32与esp8266智能家居应用
评论
共有 条评论