关于配置SmartConfig导致ESP8266频繁硬件复位的问题

最近用Arduino IDE调试ESP8266-01,在配置SmartConfig功能时,频繁复位。
以下时出现复位故障时的代码

void smartConfig()
{
    WiFi.mode(WIFI_STA);
    Serial.println("\r\nWait for Smartconfig");
    WiFi.beginSmartConfig();
    while (1)
    {
        if (WiFi.smartConfigDone())
        {
            Serial.println("SmartConfig Success");
            Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
            Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
            break;
        }
    }
}

串口输出复位信息

Soft WDT reset

ctx: cont 
sp: 3ffef8e0 end: 3ffefae0 offset: 01b0

>>>stack>>>
3ffefa90:  3fffdad0 3ffee90c 3ffee9fc 40201c9e  
3ffefaa0:  feefeffe feefeffe feefeffe 3ffeeab8  
3ffefab0:  3fffdad0 00000000 3ffeeab0 40201d0a  
3ffefac0:  feefeffe feefeffe feefeffe 40203504  
3ffefad0:  feefeffe feefeffe 3ffeeac0 40100718  
<<<stack<<<

 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1384, room 16 
tail 8
chksum 0x2d
csum 0x2d
v09f0c112
~ld
?

频繁复位到我都崩溃了,上网查了很多资料,但都没有解决问题。后来我仔细对比了其他人的代码(http://www.arduino.cn/thread-18958-1-4.html),发现唯一不一样的就是一段延时。

void smartConfig()
{
    WiFi.mode(WIFI_STA);
    Serial.println("\r\nWait for Smartconfig");
    WiFi.beginSmartConfig();
    while (1)
    {
        /*    就是这段   */
        delay(500);


        if (WiFi.smartConfigDone())
        {
            Serial.println("SmartConfig Success");
            Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
            Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
            break;
        }
    }
}

只要加上延时,万事大吉。。。。
但是不明白为什么,待后期研究吧(逃。。。)

你可能感兴趣的:(Arduino,ESP8266)