Espressif IDF – Fehlerbehandlung

Last Updated on 4. Oktober 2026 by sfambachLink-Status: OK

Die Fehlerbehandlung ist in der IDF eine der Kernfunktionalitäten. Auf sie stößt man praktisch in jedem Beispiel-Programm. Deshalb möchte ich an dieser Stelle näher auf sie eingehen.

Alle wichtigen Funktionen der IDF geben Fehlercodes zurück. Hierauf kann zum einen manuell reagiert werden (if Bedingung + eigenes Handling) oder sie können an ein spezielles Makro (Funktion) zur Ausgabe und Behandlung weitergeleitet werden.

ESP_ERROR_CHECK( int Fehler );
ESP_ERROR_CHECK( funktionDieInstZurückGibt( ParamDerFunktion ) );

In der Praxis sieht das dann meist so aus:

ESP_ERROR_CHECK(gpio_config(&config));
ESP_ERROR_CHECK(esp_timer_create(&periodic_timer_args, &periodic_timer));
ESP_ERROR_CHECK(esp_timer_start_periodic(periodic_timer, 500000));
ESP_ERROR_CHECK(esp_sleep_enable_timer_wakeup(500000));

Dieses Verfahren macht den Code zum einen sicherer, da Fehler nicht unterschlagen werden und „ausführliche“ Fehlermeldungen erstellt werden. Zum anderen sorgt es aber auch dafür, dass der Code schlechter lesbar ist. Sicherlich besser lesbar wäre das folgende Vorgehen:

// Ersatz für ESP_ERROR_CHECK(gpio_config(&config));
int error = gpio_config(&config);
ESP_ERROR_CHECK(error);

// Ersatz für ESP_ERROR_CHECK(
// esp_timer_start_periodic(periodic_timer, 500000));
error = esp_sleep_enable_timer_wakeup(500000);
if(error != ESP_OK){
  ESP_ERROR_CHECK(error);
} else {
// mache was anderes
}

Aber keine Angst vor der kurzen Schreibweise, man gewöhnt sich schnell daran. Hier noch die Links zu möglichen Fehlercodes und zur entsprechenden Doku der IDF

IDF-FehlercodesLink-Status: OK

IDF- FehlerbehandlungLink-Status: OK

Das Verhalten bei Fehlern kann über die Konfiguration beeinflusst werden. Normal ist „Print register and reboot“ eingestellt, das nervt aber eher, als es hilft. Deswegen habe ich es bei mir auf „Print registers and halt“ eingestellt, dann wird nach dem Fehler angehalten und es ist leichter, die Ausgabe zu inspizieren.

idf.py menuconfig

Kleiner Tipp: Im IDF Monitor werden die Codezeilen der Fehler angezeigt.

Angabe der fehlerhaften Datei und Zeile

So sieht der Testcode aus:

DatumÄnderungAutor
04.10.2026Rechtschreibung korrigiert: Tippfehler, Kommas, Groß-/Kleinschreibung, Grammatiksfambach
03.10.2026Log-Liste eingefügtsfambach
07.01.2021Beitrag erstelltsfambach
Logbuch

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert