|
我参照例程写了个smartconfig,要求30秒没有配置就连接默认的wifi,配置smartconfig成功后一切正常,但30秒没有配置就不能连接默认WIFI,也不能配置AP成功了,连WiFi.mode(WIFI_OFF)再打开都不行。我后来想到应该配置失败后要关闭smartconfig,然后在ESP8266WiFiSTA中找到了stopSmartConfig()函数,可使用时提示函数没定义,可函数明明在ESP8266WiFiSTA.cpp中啊。
我的smartconfig配置函数:
boolean smartConfig(void)
{
unsigned int i = 0;
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());
strcpy(eep_data.WIFI_SSID,WiFi.SSID().c_str());
strcpy(eep_data.WIFI_PWD,WiFi.psk().c_str());
EEPROM_Write_Data();
return true;
}
delay(1);//延时1ms秒
if(++i>=30000) {//30s
Serial.println("SmartConfig Failed");
//stopSmartConfig();
return false;
}
}
}
boolean Wifi_Set_STA(void)
{
if((eep_data.WIFI_SSID[0]==0)||(eep_data.WIFI_SSID[0]==0xFF)) {//检查是否已存储了SSID
if(smartConfig() == false) {//smartcofig配置WIFI STA 失败
strcpy(eep_data.WIFI_SSID,"TP-LINK_8274");
strcpy(eep_data.WIFI_PWD,"12345678");
}
}
return Wifi_Config_STA(eep_data.WIFI_SSID, eep_data.WIFI_PWD);
}
|
|