大家好,欢迎来到IT知识分享网。
1.概述
2.NVS使用(以Wi-Fi账号密码为例)
2.1打开NVS
nvs_flash_init(); //打开时需要输入一个命名空间 、状态和一个句柄 char* namespace ="namespace"; nvs_handle_t handle; nvs_open(namespace, NVS_READWRITE, handle);
2.2存储数据
//定义一个结构体存储账号密码 typedef struct{ char ssid[50]; char password[50]; }ap_t; ap_t aps_set; //将准备好的账号密码复制进来 strcpy(aps_set.ssid,"wifi_ssid"); strcpy(aps_set.ssid,"wifi_password"); //往NVS存储数据,这个API需要输入handle、key、value和大小 nvs_set_blob(handel, "ap", aps_set, sizeof(aps_set));
2.3读取数据
//定义一个结构体存储账号密码 typedef struct{ char ssid[50]; char password[50]; }ap_t; ap_t aps_set; //从NVS获取数据,这个API需要输入handle、key、value和大小的指针 size_t length = sizeof(aps_set); nvs_get_blob(handel, "ap", aps_set, &length );
2.4关闭NVS
//关闭时需要输入一个句柄 nvs_close(handle); nvs_flash_deinit();
3.迭代器
迭代器简单说就是可以罗列出所有键值对
// Example of listing all the key-value pairs of any type under specified partition and namespace nvs_iterator_t it = NULL; esp_err_t res = nvs_entry_find(<nvs_partition_name>, <namespace>, NVS_TYPE_ANY, &it); while(res == ESP_OK) { nvs_entry_info_t info; nvs_entry_info(it, &info); // Can omit error check if parameters are guaranteed to be non-NULL printf("key '%s', type '%d' \n", info.key, info.type); res = nvs_entry_next(&it); } nvs_release_iterator(it);
4.获取状态信息
可以查看有多少Entry和空余Entry,案例如下
// Example of nvs_get_stats() to get the number of used entries and free entries: nvs_stats_t nvs_stats; nvs_get_stats(NULL, &nvs_stats); printf("Count: UsedEntries = (%d), FreeEntries = (%d), AllEntries = (%d)\n", nvs_stats.used_entries, nvs_stats.free_entries, nvs_stats.total_entries);
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/137644.html