esp32s2
一、esp32nvs常用接口介绍
NVS将每个键值对分配给一个命名空间。主要接口如下:
打开一个命名空间:esperrtnvsopen(constcharname,nvsopenmodetopenmode,nvshandletouthandle)
设置获取数字型键值对:esperrtnvsgeti32(nvshandlethandle,constcharkey,int32toutvalue)esperrtnvsseti32(nvshandlethandle,constcharkey,int32tvalue)
设置获取字符型键值对:esperrtnvsgetstr(nvshandlethandle,constcharkey,charoutvalue,sizetlength)esperrtnvssetstr(nvshandlethandle,constcharkey,constcharvalue)
删除键值对的key:esperrtnvserasekey(nvshandlethandle,constcharkey)
提交修改:esperrtnvscommit(nvshandlethandle)
关闭命名空间:voidnvsclose(nvshandlethandle)二、应用实例:2。1。保存键值对:charssidxxx;charpassword1234;将得到的WiFi名称和密码存入NVSnvshandlewificfgnvshandler;ESPERRORCHECK(nvsopen(WiFicfg,NVSREADWRITE,wificfgnvshandler));ESPERRORCHECK(nvssetstr(wificfgnvshandler,wifissid,ssid));ESPERRORCHECK(nvssetstr(wificfgnvshandler,wifipasswd,password));ESPERRORCHECK(nvscommit(wificfgnvshandler));提交nvsclose(wificfgnvshandler);关闭2。2。读取键值对:nvshandlewificfgnvshandler;定义一个NVS操作句柄charwifissid〔33〕{0};定义一个数组用来存储ssidcharwifipasswd〔65〕{0};定义一个数组用来存储passwdsizetlen;打开一个NVS命名空间WiFicfg获取ssidpasswdif(ESPOK!nvsopen(WiFicfg,NVSREADWRITE,wificfgnvshandler)){ESPLOGI(WIFITAG,nvsopenerror!);}else{lensizeof(wifissid);从NVS中获取ssidif(ESPOK!nvsgetstr(wificfgnvshandler,wifissid,wifissid,len)){ESPLOGI(WIFITAG,nvsgetstrwifissiderror!);}lensizeof(wifipasswd);从NVS中获取passwdif(ESPOK!nvsgetstr(wificfgnvshandler,wifipasswd,wifipasswd,len)){ESPLOGI(WIFITAG,nvsgetstrwifipasswderror!);}ESPERRORCHECK(nvscommit(wificfgnvshandler));提交nvsclose(wificfgnvshandler);关闭if((0strcmp(wifissid,))(0strcmp(wifipasswd,))){ESPLOGI(WIFITAG,nvsgetstrwifissidorwifipasswdisempty,startsmartconfig!);}}2。3。清除键值对:clearWiFicfgspacenvshandlewificfgnvshandler;ESPERRORCHECK(nvsopen(WiFicfg,NVSREADWRITE,wificfgnvshandler));ESPERRORCHECK(nvserasekey(wificfgnvshandler,wifissid));ESPERRORCHECK(nvserasekey(wificfgnvshandler,wifipasswd));ESPERRORCHECK(nvscommit(wificfgnvshandler));提交nvsclose(wificfgnvshandler);关闭