资源简介
乐鑫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 NONOS SDK 3.0编程使用 SPI 驱动
- esp8266可用的28byj、20byj、24byj五线四相
- Arduino uno+esp8266+onenet+dht11温湿度传感器
- 安信可ESP-12S WIFI文档
- Arduino通过ESP8266模块使用HTTP协议连接
- esp8266控制步进电机.txt
- ESp8266驱动
- arduino烧录esp8266程序
- 51单片机驱动WiFi模块ESP8266模块的代码
- esp8266 探测MAC地址,串口输出.环境
- esp8266 连接阿里物理网平台远程控制
- ESP8266的TCP服务器连接错误解决办法
- ESP8266(arduino)连接阿里云物联网平台
- 乐为物联环境监测
- Esp8266_Wifi原理图
- nodemcu固件2018-06-25
- ESP8266通信源码+继电器控制
- esp8266连接手机热点,可通过阿里云实
- ESP8266串口输入字符串,同时用0.96寸
- ESP8266AT指令连接云平台
- esp8266-RTOS SDK IPV6
- STM32+8266+连接云平台源码.zip
- 51单片机程序.zip
- Mixly 的 ESP8266 库
- ESP8266连接ONENET平台传输数据------笔记
- ESP8266与上位机通信代码
- 米思齐esp8266wifi库.zip
- C51_ESP8266_rc522.rar
- esp8266_modules_libraries esp8266相关模组的
- ESP8266 PWM源文件
评论
共有 条评论