3.2 KiB
3.2 KiB
GPIO Module
Since | Origin / Contributor | Maintainer | Source |
---|---|---|---|
2016-11-26 | Johny Mattsson | Johny Mattsson | gpio.c |
This module provides access to the GPIO (General Purpose Input/Output) subsystem.
GPIO Overview
The ESP32 chip features 40 physical GPIO pads. Some GPIO pads cannot be used or do not have the corresponding pin on the chip package (refer to the ESP32 Datasheet).
- GPIO6-11 are usually used for SPI flash.
- GPIO20, GPIO24, and GPIO28-31 are not available as pins.
- GPIO34-39 can only be set as input mode and do not have software pullup or pulldown functions.
gpio.config()
Configure GPIO mode for one or more pins.
Syntax
gpio.config({
gpio=x || {x, y, z},
dir=gpio.IN || gpio.OUT || gpio.IN_OUT,
opendrain= 0 || 1 -- only applicable to output modes
pull= gpio.FLOATING || gpio.PULL_UP || gpio.PULL_DOWN || gpio.PULL_UP_DOWN
}, ...)
Parameters
List of configuration tables:
gpio
one or more (given as list) pins, see GPIO Overviewdir
direction, one ofgpio.IN
gpio.OUT
gpio.IN_OUT
opendrain
1 enables opendrain mode, defaults to 0 if omittedpull
enable pull-up and -down resistors, one ofgpio.FLOATING
disables both pull-up and -downgpio.PULL_UP
enables pull-up and disables pull-downgpio.PULL_DOWN
enables pull-down and disables pull-upgpio.PULL_UP_DOWN
enables both pull-up and -down
Returns
nil
Example
gpio.config( { gpio={19,21}, dir=gpio.OUT }, { gpio=22, dir=gpio.IN, pull=gpio.PULL_UP })
gpio.read()
Read digital GPIO pin value.
Syntax
gpio.read(pin)
Parameters
pin
pin to read, see GPIO Overview
Returns
0 = low, 1 = high
gpio.trig()
Establish or clear a callback function to run on interrupt for a GPIO.
Syntax
gpio.trig(pin, type [, callback])
Parameters
pin
, see GPIO Overviewtype
trigger type, one ofgpio.INTR_UP
for trigger on rising edgegpio.INTR_DOWN
for trigger on falling edgegpio.INTR_UP_DOWN
for trigger on both edgesgpio.INTR_LOW
for trigger on low levelgpio.INTR_HIGH
for trigger on high level
callback
optional function to be called when trigger fires, trigger is disabled when omitted. Parameters are:pin
level
Returns
nil
gpio.wakeup()
Configuring wake-from-sleep-on-GPIO-level.
Syntax
gpio.wakeup(pin, level)
Parameters
pin
, see GPIO Overviewlevel
wake-up level, one ofgpio.INTR_NONE
to disable wake-upgpio.INTR_LOW
for wake-up on low levelgpio.INTR_HIGH
for wake-up on high level
Returns
nil
gpio.write()
Set digital GPIO pin value.
Syntax
gpio.write(pin, level)
Parameters
pin
pin to write, see GPIO Overviewlevel
1 or 0
Returns
nil