ESP32-C3错误处理:wifi: wifi nvs_open fail ret=4353,esp_wifi_init()出错

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

wifi初始化过程中,执行到esp_wifi_init()时出现错误。 错误代码为:wifi: wifi nvs_open fail ret=4353

I (353) spi_flash: detected chip: generic
I (357) spi_flash: flash io: dio
I (361) cpu_start: Starting scheduler.
I (373) TEST: RUNING IN MAI STEP 1
I (403) gpio: GPIO[10]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (403) gpio: GPIO[4]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (413) gpio: GPIO[5]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (423) pp: pp rom version: 9387209
I (433) net80211: net80211 rom version: 9387209
W (433) wifi:wifi osi_nvs_open fail ret=4353

I (443) wifi_init: rx ba win: 6
I (443) wifi_init: tcpip mbox: 32
I (453) wifi_init: udp mbox: 6
I (453) wifi_init: tcp mbox: 6
I (453) wifi_init: tcp tx win: 5744
I (463) wifi_init: tcp rx win: 5744
I (463) wifi_init: tcp mss: 1440
I (473) wifi_init: WiFi IRAM OP enabled
I (473) wifi_init: WiFi RX IRAM OP enabled

同时会显示ESP_ERR_NVS_NOT_INITIALIZED.

1.解决方法 1:

执行make menuconfig,依次进入component config -> Wifi -> Wifi NVS Flash,禁选该选项,编译烧录后即可。
在这里插入图片描林用述禁用NVS

I (373) TEST: RUNING IN MAI STEP 1
I (393) gpio: GPIO[10]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (403) gpio: GPIO[4]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (413) gpio: GPIO[5]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (423) pp: pp rom version: 9387209
I (423) net80211: net80211 rom version: 9387209
I (443) wifi:wifi driver task: 3fc9f2d4, prio:23, stack:6656, core=0
I (443) system_api: Base MAC address is not set
I (443) system_api: read default base MAC address from EFUSE
I (453) wifi:wifi firmware version: 57982fe
I (453) wifi:wifi certification version: v7.0
I (453) wifi:config NVS flash: disabled
I (463) wifi:config nano formating: disabled
I (463) wifi:Init data frame dynamic rx buffer num: 32
I (473) wifi:Init management frame dynamic rx buffer num: 32
I (473) wifi:Init management short buffer num: 32
I (483) wifi:Init dynamic tx buffer num: 32
I (483) wifi:Init static tx FG buffer num: 2
I (483) wifi:Init static rx buffer size: 1600
I (493) wifi:Init static rx buffer num: 10
I (493) wifi:Init dynamic rx buffer num: 32
I (503) wifi_init: rx ba win: 6
I (503) wifi_init: tcpip mbox: 32
I (503) wifi_init: udp mbox: 6
I (513) wifi_init: tcp mbox: 6
I (513) wifi_init: tcp tx win: 5744
I (513) wifi_init: tcp rx win: 5744
I (523) wifi_init: tcp mss: 1440
I (523) wifi_init: WiFi IRAM OP enabled
I (533) wifi_init: WiFi RX IRAM OP enabled

2.解决方法 2:

在wifi初始化之前,先执行nvs_flash_init();
I (373) TEST: RUNING IN MAI STEP 1
I (403) gpio: GPIO[10]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (403) gpio: GPIO[4]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (413) gpio: GPIO[5]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (433) pp: pp rom version: 9387209
I (433) net80211: net80211 rom version: 9387209
I (443) wifi:wifi driver task: 3fc9f76c, prio:23, stack:6656, core=0
I (443) system_api: Base MAC address is not set
I (443) system_api: read default base MAC address from EFUSE
I (453) wifi:wifi firmware version: 57982fe
I (453) wifi:wifi certification version: v7.0
I (453) wifi:config NVS flash: enabled
I (463) wifi:config nano formating: disabled
I (463) wifi:Init data frame dynamic rx buffer num: 32
I (473) wifi:Init management frame dynamic rx buffer num: 32
I (473) wifi:Init management short buffer num: 32
I (483) wifi:Init dynamic tx buffer num: 32
I (483) wifi:Init static tx FG buffer num: 2
I (483) wifi:Init static rx buffer size: 1600
I (493) wifi:Init static rx buffer num: 10
I (493) wifi:Init dynamic rx buffer num: 32
I (503) wifi_init: rx ba win: 6
I (503) wifi_init: tcpip mbox: 32
I (503) wifi_init: udp mbox: 6
I (513) wifi_init: tcp mbox: 6
I (513) wifi_init: tcp tx win: 5744
I (513) wifi_init: tcp rx win: 5744
I (523) wifi_init: tcp mss: 1440
I (523) wifi_init: WiFi IRAM OP enabled
I (533) wifi_init: WiFi RX IRAM OP enabled

问题解决。

  • 17
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
nvs_flash_init函数是ESP-IDF(ESP32 IoT Development Framework)中的一个重要函数,用于初始化Flash驱动器的非易失性存储(NVS)分区。NVS分区是ESP32中用于存储应用程序参数和配置的重要分区之一。该函数的目的是在ESP32启动时初始化NVS分区,以便应用程序可以访问和写入NVS存储器。以下是nvs_flash_init()函数的详细讲解: 函数原型:esp_err_t nvs_flash_init(void) 函数返回值:esp_err_t类型,如果函数执行成功,则返回ESP_OK,否则返回错误代码 函数功能:该函数用于初始化Flash驱动器的NVS分区。在ESP32启动时,该函数应该被调用一次,以便应用程序可以访问和写入NVS存储器。 函数说明:该函数是ESP-IDF中的一个重要函数,需要在应用程序主函数之前调用。如果未初始化NVS分区,则应用程序将无法访问和写入NVS存储器。在调用该函数之前,需要确保已经初始化了ESP32的Flash驱动器。 函数示例: ``` #include <nvs_flash.h> void app_main(void) { // 初始化Flash驱动器的NVS分区 esp_err_t ret = nvs_flash_init(); if (ret == ESP_OK) { printf("NVS分区初始化成功"); } else { printf("NVS分区初始化失败"); } } ``` 需要注意的是,nvs_flash_init()函数仅需要在ESP32首次启动时调用一次,并且不应该在应用程序的主循环中重复调用该函数。如果应用程序需要重新初始化NVS分区,则可以使用nvs_flash_erase()函数清除NVS分区中的数据,并再次调用nvs_flash_init()函数以重新初始化NVS分区。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值