解决:ESP8266看门狗重启后,WIFI在STA和AP两种模式下均无法正常工作

使用的官方SDK,版本:IDF Version:v3.2-216-g7b78b97-dirty

问题描述:

当程序进入死循环,会触发看门狗复位,但是复位重启后,发现STA模型下无法连接AP,如果在AP模式下,无法看到SSID。通过esp_restart();软重启,重启后,依然连接不上。只能设备断电上电,或者按reset复位才能解决。

验证测试:

在上电后,wifi初始化中,在调用esp_wifi_init()前,提前调用esp_wifi_deinit和esp_wifi_restore也无法解决

原因分析:

发现触发看门狗复位会调用components\freertos\port\esp8266\panic.c模块中panicHandler函数,这个函数会设置相关寄存器,并打印相关异常信息。如下所示:

解决:ESP8266看门狗重启后,WIFI在STA和AP两种模式下均无法正常工作

 

经测试发现屏蔽红框中的代码,就可以解决问题。

解决办法:

方法一:就是上面所说的屏蔽红框代码;

方法二:进入menuconfig把宏CONFIG_ESP_PANIC_SILENT_REBOOT启用(其实和方法一的原理一样,都是屏蔽那段代码),如下所示:选择“silent reboot”

解决:ESP8266看门狗重启后,WIFI在STA和AP两种模式下均无法正常工作