esp32s2
一、esp32-nvs常用接口介绍
NVS 将每个键值对分配给一个命名空间。主要接口如下:
打开一个命名空间: esp_err_t nvs_open(const char *name, nvs_open_mode_topen_mode, nvs_handle_t *out_handle)
设置获取数字型键值对: esp_err_t nvs_get_i32(nvs_handle_thandle, const char *key, int32_t *out_value) esp_err_t nvs_set_i32(nvs_handle_thandle, const char *key, int32_t value)
设置获取字符型键值对: esp_err_t nvs_get_str(nvs_handle_thandle, const char *key, char *out_value, size_t *length) esp_err_t nvs_set_str(nvs_handle_thandle, const char *key, const char *value)
删除键值对的key: esp_err_t nvs_erase_key(nvs_handle_thandle, const char *key)
提交修改: esp_err_t nvs_commit(nvs_handle_thandle)
关闭命名空间: void nvs_close(nvs_handle_thandle)二、应用实例:2.1. 保存键值对:char *ssid = "xxx"; char *password = "1234"; /* 将得到的WiFi名称和密码存入NVS*/ nvs_handle wificfg_nvs_handler; ESP_ERROR_CHECK( nvs_open("WiFi_cfg", NVS_READWRITE, &wificfg_nvs_handler) ); ESP_ERROR_CHECK( nvs_set_str(wificfg_nvs_handler,"wifi_ssid",ssid) ); ESP_ERROR_CHECK( nvs_set_str(wificfg_nvs_handler,"wifi_passwd",password) ); ESP_ERROR_CHECK( nvs_commit(wificfg_nvs_handler) ); /* 提交 */ nvs_close(wificfg_nvs_handler); /* 关闭 */2.2. 读取键值对:nvs_handle wificfg_nvs_handler; /* 定义一个NVS操作句柄 */ char wifi_ssid[33] = { 0 }; /* 定义一个数组用来存储ssid*/ char wifi_passwd[65] = { 0 }; /* 定义一个数组用来存储passwd */ size_t len; /* 打开一个NVS命名空间WiFi_cfg获取ssid/passwd */ if(ESP_OK != nvs_open("WiFi_cfg", NVS_READWRITE, &wificfg_nvs_handler) ){ ESP_LOGI(WIFI_TAG, "nvs_open error!"); }else{ len = sizeof(wifi_ssid); /* 从NVS中获取ssid */ if(ESP_OK != nvs_get_str(wificfg_nvs_handler,"wifi_ssid",wifi_ssid,&len) ){ ESP_LOGI(WIFI_TAG, "nvs_get_str wifi_ssid error!"); } len = sizeof(wifi_passwd); /* 从NVS中获取passwd */ if(ESP_OK != nvs_get_str(wificfg_nvs_handler,"wifi_passwd",wifi_passwd,&len) ){ ESP_LOGI(WIFI_TAG, "nvs_get_str wifi_passwd error!"); } ESP_ERROR_CHECK( nvs_commit(wificfg_nvs_handler) ); /* 提交 */ nvs_close(wificfg_nvs_handler); /* 关闭 */ if((0 == strcmp(wifi_ssid,"")) | (0 == strcmp(wifi_passwd,""))){ ESP_LOGI(WIFI_TAG, "nvs_get_str wifi_ssid or wifi_passwd is empty,start smartconfig!"); } }2.3. 清除键值对:// clear WiFi_cfg space nvs_handle wificfg_nvs_handler; ESP_ERROR_CHECK( nvs_open("WiFi_cfg", NVS_READWRITE, &wificfg_nvs_handler) ); ESP_ERROR_CHECK( nvs_erase_key(wificfg_nvs_handler,"wifi_ssid") ); ESP_ERROR_CHECK( nvs_erase_key(wificfg_nvs_handler,"wifi_passwd") ); ESP_ERROR_CHECK( nvs_commit(wificfg_nvs_handler) ); /* 提交 */ nvs_close(wificfg_nvs_handler); /* 关闭 */
干货!什么是无主商标?无主商标等于闲置商标吗?什么是无主商标?无主商标是指由于企业破产解散关闭或商标人死亡,在主管机关的商标注册簿内仍然存在的注册商标。简而言之,无主商标就是没有商标持有人但仍合法的商标。无主商标有什么特征呢?
吉利起诉曹操货的,获赔10。1万元日前,浙江吉利控股集团有限公司与北京搜狐互联网信息服务有限公司等侵害商标权及不正当竞争纠纷一审民事判决书于近日公布,原告为浙江吉利控股集团有限公司,被告为深圳市曹操货的科技有限公司
干货!商标注册的诚实信用原则是什么?为了更好地处理违背诚实信用原则,恶意注册商标将别人早已在先应用的商标抢先开展注册等情况,在我国商标法第三次改动时增加了申请办理注册和应用商标,理应遵照诚实信用原则的要求。商标注册的
如何注册个人肖像为商标?会被驳回吗?能够作为商标注册的标志,除了文字图形数字等,自己的肖像也可以为商标申请注册。在生活中,我们也能看到很多以肖像注册为商标的,比如老干妈肯德基王守义等都是知名度比较高的肖像商标。而且随
CoCo都可起诉同名企业侵害商标权,获赔5。5万天眼查App显示,近日,上海馥邑企业管理有限公司与杭州都可生物科技连锁有限公司北京微梦创科网络技术有限公司侵害商标权纠纷一审民事判决书公布,案号为(2019)沪0115民初8506
科普!阿司匹林原来不是通用名称而是商标在知识产权战略盛行的今天,商标作为企业的无形财产而备受瞩目,其既是企业商品或服务质量形象声誉的载体,又在带给企业开拓商品市场获取巨大的经济利益的同时也成为多方利益的博弈场。而有一种
全球电竞媒体版权暴涨!2021年达4亿美元根据国外媒体Newzoo报告,全球电竞赛事的媒体版权将从1亿美元增长到2021年的4亿美元左右,在传统体育赛事版权普遍下跌的大环境上看,电竞媒体版权的暴涨无疑是令人振奋的好消息。但
干货!公司注销时商标该如何处理?在现实生活中,公司出现注销的情况是非常多的,而公司一般是会注册自己的商标的,公司注销的时候就需要处理好公司清算的相关问题,还有商标的处理的问题,那么商标注册后公司注销了还有效吗?依
李焕英与烈士同名,商标申请难通过虽说春节假期已经过去,但是今年电源春节档的余温仍未消散。根据灯塔实时票房统计,截止24日,今年的票房黑马你好,李焕英累计票房超40亿,成功2021迄今为止票房最高的电影。网络上对于
美国奥委会状告PUMA,指控商标侵权美国时间2021年2月23日,据报道,美国奥运会及残奥会委员会(USOPC)在科罗拉多州联邦地方法院对德国运动品牌彪马(PUMA)提起上诉。时间回溯到2020年3月24日,国际奥委
华为自研编程语言曝光,名为仓颉数码界一直有传闻称华为正在研发自己的编程语言。早在去年9月初微博博主IT工程师透露称,华为正在研发新的自主编程语言仓颉,领头人是南京大学的计算机科学与技术系博士生导师冯新宇。随后,