首页 > 解决方案 > ESP32 WiFi.status() 总是返回 WL_DICSONNECTED (STA_MODE)

问题描述

我花了很多时间试图解决这个问题。

我添加了多次尝试,在 Wifi.begin() 之前尝试了 WiFi.disconnect()。没有任何效果:status仍然是WL_DISCONNECTED(0x06)。

WiFi.mode(WIFI_STA);
for(;;) {
        attempt++;

        Wifi.begin(ssid, password);
        wl_status_t status = WiFi.status();
        String m = connectionStatusMessage(status);
        log("Connection attempt %d: status is%s", attempt, m.c_str());

        if (status == WL_CONNECTED) {       
            Serial.println();
            success("connected (WL_CONNECTED)");
            information();
            break;
        } 

[更新] 注意:我使用的是 ESP-WROOM-32 devkit 包。ESP32 sdk 是 PlatformIO 上可用的最新稳定版本。我也测试了其他开发工具包,比如来自 Az-Delivery 的开发工具包。

标签: c++wifiesp32

解决方案


我有一个想法:WiFi.begin(ssid, password)应该只调用一次。把它放在循环之前:

WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
        
for(;;) {
        attempt++;

        wl_status_t status = WiFi.status();
        String m = connectionStatusMessage(status);
        log("Connection attempt %d: status is%s", attempt, m.c_str());

        if (status == WL_CONNECTED) {       
            Serial.println();
            success("connected (WL_CONNECTED)");
            information();
            break;
        } 
}

推荐阅读