最近用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;
}
}
}
只要加上延時,萬事大吉。。。。
但是不明白爲什麼,待後期研究吧(逃。。。)