Wie man esp_eth_new_netif_glue() behebt, das NULL zurückgibt

English Deutsch

Problem

Beim Initialisieren der Ethernet-Schnittstelle Ihres ESP32 mit esp_eth_new_netif_glue() erhalten Sie einen NULL-Zeiger zurück.

esp_eth_fix.cpp
esp_eth_netif_glue_handle_t netif_glue = esp_eth_new_netif_glue(eth_handle);
if(netif_glue == nullptr) {
    log_e("esp_eth_new_netif_glue failed");
}

Lösung

Der typische Grund, warum dies fehlschlägt, ist, dass die Standard-Event-Schleife nicht läuft, was wiederum dazu führt, dass esp_event_handler_instance_register() mit ESP_ERR_INVALID_STATE fehlschlägt.

Starten Sie die Standard-Event-Schleife, bevor Sie esp_eth_new_netif_glue() aufrufen:

esp_event_loop_create_default.cpp
esp_err_t err = esp_event_loop_create_default();
if(err != ESP_OK) {
    log_e("esp_event_loop_create_default failed");
    return;
}

Check out similar posts by category: ESP32, ESP-IDF