Consultar el motivo del fallo de la conexión wifi en esp-idf

Agregue el siguiente código a la parte donde falló la conexión Wi-Fi:

ESP_LOGI(TAG,"reason: fail %d\n", event->event_info.disconnected.reason);

P.ej:

    case SYSTEM_EVENT_STA_DISCONNECTED:
        {
    
    
            if (s_retry_num < EXAMPLE_ESP_MAXIMUM_RETRY) {
    
    
                esp_wifi_connect();
                xEventGroupClearBits(s_wifi_event_group, WIFI_CONNECTED_BIT);
                s_retry_num++;
                ESP_LOGI(TAG,"retry to connect to the AP");
            }
            ESP_LOGI(TAG,"connect to the AP fail\n");
            ESP_LOGI(TAG,"reason: fail %d\n", event->event_info.disconnected.reason);
            break;
        }

Luego compile, grabe y abra el monitor serial. Si Wi-Fi verificará el motivo de error correspondiente en el terminal en este momento, por ejemplo:

I (10654) wifi station: connect to the AP fail

I (10654) wifi station: reason: fail 201

Adjunto: Tabla de comparación de motivos de la falla de la conexión Wi-Fi:

typedef enum {
    
    
    WIFI_REASON_UNSPECIFIED              = 1,
    WIFI_REASON_AUTH_EXPIRE              = 2,
    WIFI_REASON_AUTH_LEAVE               = 3,
    WIFI_REASON_ASSOC_EXPIRE             = 4,
    WIFI_REASON_ASSOC_TOOMANY            = 5,
    WIFI_REASON_NOT_AUTHED               = 6,
    WIFI_REASON_NOT_ASSOCED              = 7,
    WIFI_REASON_ASSOC_LEAVE              = 8,
    WIFI_REASON_ASSOC_NOT_AUTHED         = 9,
    WIFI_REASON_DISASSOC_PWRCAP_BAD      = 10,
    WIFI_REASON_DISASSOC_SUPCHAN_BAD     = 11,
    WIFI_REASON_IE_INVALID               = 13,
    WIFI_REASON_MIC_FAILURE              = 14,
    WIFI_REASON_4WAY_HANDSHAKE_TIMEOUT   = 15,
    WIFI_REASON_GROUP_KEY_UPDATE_TIMEOUT = 16,
    WIFI_REASON_IE_IN_4WAY_DIFFERS       = 17,
    WIFI_REASON_GROUP_CIPHER_INVALID     = 18,
    WIFI_REASON_PAIRWISE_CIPHER_INVALID  = 19,
    WIFI_REASON_AKMP_INVALID             = 20,
    WIFI_REASON_UNSUPP_RSN_IE_VERSION    = 21,
    WIFI_REASON_INVALID_RSN_IE_CAP       = 22,
    WIFI_REASON_802_1X_AUTH_FAILED       = 23,
    WIFI_REASON_CIPHER_SUITE_REJECTED    = 24,

    WIFI_REASON_BEACON_TIMEOUT           = 200,
    WIFI_REASON_NO_AP_FOUND              = 201,
    WIFI_REASON_AUTH_FAIL                = 202,
    WIFI_REASON_ASSOC_FAIL               = 203,
    WIFI_REASON_HANDSHAKE_TIMEOUT        = 204,
    WIFI_REASON_CONNECTION_FAIL          = 205,
} wifi_err_reason_t;

NOTA: Si los problemas del canal, la falla de la conexión Wi-Fi ocurre en 13 & caso SSID oculto, algo como las siguientes modificaciones policy:
wifi_country_t wifi_country = {0};
ESP_ERROR_CHECK (esp_wifi_get_country (& wifi_country));
wifi_country.policy = WIFI_COUNTRY_POLICY_MANUAL;
ESPERROR_ (esp_wifi_set_country (& wifi_country));

Supongo que te gusta

Origin blog.csdn.net/zztiger123/article/details/105793106
Recomendado
Clasificación