Collaboration diagram for GPIO driver:

Classes

struct  esp32_gpioMux_t
 

Macros

#define ESP32_LOW   0x0
 
#define ESP32_HIGH   0x1
 
#define ESP32_INPUT   0x01
 
#define ESP32_OUTPUT   0x02
 
#define ESP32_PULLUP   0x04
 
#define ESP32_INPUT_PULLUP   0x05
 
#define ESP32_PULLDOWN   0x08
 
#define ESP32_INPUT_PULLDOWN   0x09
 
#define ESP32_OPEN_DRAIN   0x10
 
#define ESP32_OUTPUT_OPEN_DRAIN   0x12
 
#define ESP32_SPECIAL   0xF0
 
#define ESP32_FUNCTION_1   0x00
 
#define ESP32_FUNCTION_2   0x20
 
#define ESP32_FUNCTION_3   0x40
 
#define ESP32_FUNCTION_4   0x60
 
#define ESP32_FUNCTION_5   0x80
 
#define ESP32_FUNCTION_6   0xA0
 
#define ESP32_ANALOG   0xC0
 
#define ESP32_DISABLED   0x00
 
#define ESP32_RISING   0x01
 
#define ESP32_FALLING   0x02
 
#define ESP32_CHANGE   0x03
 
#define ESP32_ONLOW   0x04
 
#define ESP32_ONHIGH   0x05
 
#define ESP32_ONLOW_WE   0x0C
 
#define ESP32_ONHIGH_WE   0x0D
 
#define digitalPinIsValid(pin)   ((pin) < 40 && esp32_gpioMux[(pin)].reg)
 
#define digitalPinCanOutput(pin)   ((pin) < 34 && esp32_gpioMux[(pin)].reg)
 
#define digitalPinToRtcPin(pin)   (((pin) < 40) ? esp32_gpioMux[(pin)].rtc : -1)
 
#define digitalPinToAnalogChannel(pin)   (((pin) < 40) ? esp32_gpioMux[(pin)].adc : -1)
 
#define digitalPinToTouchChannel(pin)   (((pin) < 40) ? esp32_gpioMux[(pin)].touch : -1)
 
#define digitalPinToDacChannel(pin)   (((pin) == 25) ? 0 : ((pin) == 26) ? 1 : -1)
 

Enumerations

enum  GPIO_INT_TYPE {
  GPIO_PIN_INTR_DISABLE = 0, GPIO_PIN_INTR_POSEDGE = 1, GPIO_PIN_INTR_NEGEDGE = 2, GPIO_PIN_INTR_ANYEDGE = 3,
  GPIO_PIN_INTR_LOLEVEL = 4, GPIO_PIN_INTR_HILEVEL = 5
}
 Defines the GPIO interrupt type. More...
 

Variables

const esp32_gpioMux_t esp32_gpioMux [40]
 
const int8_t esp32_adc2gpio [20]
 

Detailed Description

Macro Definition Documentation

◆ digitalPinCanOutput

#define digitalPinCanOutput (   pin)    ((pin) < 34 && esp32_gpioMux[(pin)].reg)

◆ digitalPinIsValid

#define digitalPinIsValid (   pin)    ((pin) < 40 && esp32_gpioMux[(pin)].reg)

◆ digitalPinToAnalogChannel

#define digitalPinToAnalogChannel (   pin)    (((pin) < 40) ? esp32_gpioMux[(pin)].adc : -1)

◆ digitalPinToDacChannel

#define digitalPinToDacChannel (   pin)    (((pin) == 25) ? 0 : ((pin) == 26) ? 1 : -1)

◆ digitalPinToRtcPin

#define digitalPinToRtcPin (   pin)    (((pin) < 40) ? esp32_gpioMux[(pin)].rtc : -1)

◆ digitalPinToTouchChannel

#define digitalPinToTouchChannel (   pin)    (((pin) < 40) ? esp32_gpioMux[(pin)].touch : -1)

◆ ESP32_ANALOG

#define ESP32_ANALOG   0xC0

◆ ESP32_CHANGE

#define ESP32_CHANGE   0x03

◆ ESP32_DISABLED

#define ESP32_DISABLED   0x00

◆ ESP32_FALLING

#define ESP32_FALLING   0x02

◆ ESP32_FUNCTION_1

#define ESP32_FUNCTION_1   0x00

◆ ESP32_FUNCTION_2

#define ESP32_FUNCTION_2   0x20

◆ ESP32_FUNCTION_3

#define ESP32_FUNCTION_3   0x40

◆ ESP32_FUNCTION_4

#define ESP32_FUNCTION_4   0x60

◆ ESP32_FUNCTION_5

#define ESP32_FUNCTION_5   0x80

◆ ESP32_FUNCTION_6

#define ESP32_FUNCTION_6   0xA0

◆ ESP32_HIGH

#define ESP32_HIGH   0x1

◆ ESP32_INPUT

#define ESP32_INPUT   0x01

◆ ESP32_INPUT_PULLDOWN

#define ESP32_INPUT_PULLDOWN   0x09

◆ ESP32_INPUT_PULLUP

#define ESP32_INPUT_PULLUP   0x05

◆ ESP32_LOW

#define ESP32_LOW   0x0

◆ ESP32_ONHIGH

#define ESP32_ONHIGH   0x05

◆ ESP32_ONHIGH_WE

#define ESP32_ONHIGH_WE   0x0D

◆ ESP32_ONLOW

#define ESP32_ONLOW   0x04

◆ ESP32_ONLOW_WE

#define ESP32_ONLOW_WE   0x0C

◆ ESP32_OPEN_DRAIN

#define ESP32_OPEN_DRAIN   0x10

◆ ESP32_OUTPUT

#define ESP32_OUTPUT   0x02

◆ ESP32_OUTPUT_OPEN_DRAIN

#define ESP32_OUTPUT_OPEN_DRAIN   0x12

◆ ESP32_PULLDOWN

#define ESP32_PULLDOWN   0x08

◆ ESP32_PULLUP

#define ESP32_PULLUP   0x04

◆ ESP32_RISING

#define ESP32_RISING   0x01

◆ ESP32_SPECIAL

#define ESP32_SPECIAL   0xF0

Enumeration Type Documentation

◆ GPIO_INT_TYPE

Defines the GPIO interrupt type.

Enumerator
GPIO_PIN_INTR_DISABLE 

Interrupt disabled for this pin

GPIO_PIN_INTR_POSEDGE 

Interrupt occurs on positive edge

GPIO_PIN_INTR_NEGEDGE 

Interrupt occurs on negative edge

GPIO_PIN_INTR_ANYEDGE 

Interrupt occurs on both positive and negative edge

GPIO_PIN_INTR_LOLEVEL 

Interrupt occurs when GPIO low

GPIO_PIN_INTR_HILEVEL 

Interrupt occurs when GPIO high

Variable Documentation

◆ esp32_adc2gpio

const int8_t esp32_adc2gpio[20]

◆ esp32_gpioMux

const esp32_gpioMux_t esp32_gpioMux[40]