在WIFI_AP
模式下一切顺利,但在WIFI_STA
模式下,它仍处于WIFI_STA_AP
模式。
如何仅在没有软件访问点的情况下将WiFi设置为工作站。
if(wmode == "AP") {
Serial.println("Starting in AP mode");
WiFi.mode(WIFI_AP);
WiFi.softAP(ssid, pwd);
WiFi.softAPConfig(charToIPAddress(ip), charToIPAddress(gateway), mask);
} else if (wmode == "STA") {
Serial.println("Starting in STA mode");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, pwd);
WiFi.config(charToIPAddress(ip), charToIPAddress(gateway), mask);
}
编辑:这不是关于wmode
,这段代码的if
语句工作正常,re:arduino字符串类操作符(简写)
答案 0 :(得分:4)
当您使用WiFi.begin而不仅仅是设置它时,ESP8266似乎是OR模式参数,并且还记住之前的模式(例如,通过重新启动)。调用WiFi.disconnect();
后跟WiFi.softAPdisconnect(true);
应明确告诉ESP禁用当前正在运行的所有WiFi操作 - 无论是基础架构模式还是AP模式 - 然后您可以定义它应该是什么模式。