首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查Wifi NVS数据

检查Wifi NVS数据
EN

Stack Overflow用户
提问于 2020-12-25 16:17:25
回答 1查看 244关注 0票数 0

下面是我的案例:

已启用Wifi NVS FLash。我正在使用esp_wifi_get_config来查看wifi配置是否保存在NVS中。我的代码是:

代码语言:javascript
复制
wifi_config_t conf;
 ret = esp_wifi_get_config(ESP_IF_WIFI_STA, &conf);
if (ret == ESP_OK)
    {

  ESP_LOGI(TAG, "Wifi configuration already stored in flash partition called NVS");
ESP_LOGI(TAG, "%s" ,conf.sta.ssid);
ESP_LOGI(TAG, "%s" ,conf.sta.password);
    }
else
    {

ESP_LOGI(TAG, "Wifi configuration not found in flash partition called NVS.");    
    configure_wifi();
    }

它像预期的那样工作。然后,在上面编写的代码之前,我使用nvs_flash_erase();nvs_flash_init();擦除并初始化了我的nvs。现在我的输出是

代码语言:javascript
复制
I (697) Wifi station: Wifi configuration already stored in flash partition called NVS

I (707) Wifi station:

I (707) Wifi station:

我的方法正确吗?如果没有,那么在配置wifi之前检查Wifi nvs数据的正确方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2021-02-09 05:49:42

我遇到了同样的问题,发现无法通过检查返回值来检查从nvs加载wifi_config的成功与否。

我通过检查来自NVS的数据的字符串长度解决了这个问题,在擦除闪存后,字符串长度通常由0xff填充。

代码语言:javascript
复制
wifi_config_t wifi_config;
esp_wifi_get_config(ESP_IF_WIFI_STA, &wifi_config);

//You could check if more values are set but I figured out that only ssid
//or password is necessary to check against
if(strlen(&wifi_config.sta.ssid) == 0 || strlen(&wifi_config.sta.password) == 0) {
    //do here your error handling
} else {
    //use sucessfully retreived wifi_config
    esp_wifi_set_config(WIFI_IF_STA, &wifi_config));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65446414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档