Espressif IDF – GPIOs

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(‚

‚); 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:

Aktivierung / Konfiguration der Schalter

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

Link-Status: UnbekanntEspressif IDF – Timer
Link-Status: OKEspressif IDF – Tasks

Quellen

Link-Status: OKIDF - Programming Guide

Link-Status: OKIDF - GPIO & RTC GPIO

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

Schreibe einen Kommentar

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