Last Updated on 4. Oktober 2026 by Link-Status: OKsfambach
Die meisten GPIO Pins des ESP32 sind, bis auf ein paar Ausnahmen, sowohl Eingänge als auch Ausgänge (siehe hierzu auch das entsprechende Datenblatt). Wie diese digital angesteuert werden, zeigen die nächsten Beispiele.
Grundsätzliches
Sind die Pins als digital konfiguriert, können sie jeweils den Wert 1= true oder 0= false annehmen.
Ausgang
Hier das Blinkbeispiel mit dem periodischen Timer aus der vorangegangenen Übung. Nur wird jetzt eine LED geschaltet.
Als binären Ausgang konfigurieren
gpio_set_direction(<LED_PIN>, GPIO_MODE_OUTPUT);
Wert setzen
gpio_set_level(<LED_PIN>, <0|1>);
‚); document.write(‚
‚);
Eingang
Mein Code hierzu orientiert sich sehr stark am Beispiel Projekt „examples/peripherals/gpio/generic_gpio“ der IDF.
Das Beispiel ist leider etwas umfangreicher geworden, da es mit zwei essenziellen Mechanismen arbeitet. Zum einen mit den Interrupts und zum anderen mit einem Task. Die Tasks habe ich kurz zuvor eingeführt.
Als binären Eingang konfigurieren
gpio_set_direction(<LED_PIN>, GPIO_MODE_INPUT);Wert abfragen
bool gpio_get_level(<PIN>);Interrupt aktivieren
//Interupt Typ setzten
gpio_set_intr_type(
<PIN>,
<
GPIO_INTR_DISABLE // deaktiviert
GPIO_INTR_POSEDGE
// Steigende Flanke
GPIO_INTR_NEGEDGE
// Fallender Flanke
GPIO_INTR_ANYEDGE
// Beider Flanken
GPIO_INTR_LOW_LEVEL
// Eingang Low
GPIO_INTR_HIGH_LEVEL // Eingang High
>
);
// Interupt für Pin aktivieren
gpio_intr_enable(<PIN>);
Beispielprogramm
Vor der Verwendung des Beispielprogramms menuconfig nicht vergessen, die Schalter können einzeln aktiviert werden. Zusätzlich kann die Kurz/Lang Unterscheidung eingeschaltet werden. Diese prüft, ob ein Knopf lange oder kurz gedrückt wurde:

Fazit
GPIOs sind einfach zu bedienen. Die Handhabung ähnelt der Arduino GUI. Kommen Interrupts dazu, wird der Code schnell komplexer.
Verwandte Beiträge
Link-Status: KaputtHauptbeitrag
Quellen
Link-Status: OKIDF - Programming Guide
Link-Status: OKIDF - GPIO & RTC GPIO
| Datum | Änderung | Autor |
|---|---|---|
| 04.10.2026 | Rechtschreibung korrigiert: Tippfehler, Kommas, Groß-/Kleinschreibung, Grammatik | sfambach |
| 03.10.2026 | Log-Liste eingefügt | sfambach |
| 18.01.2021 | Beitrag erstellt | sfambach |