The GPIO module provides control for up to eight independent GPIO pins (the actual number present depend upon the GPIO port and part number). Each pin has the following capabilities:
- Can be configured as an input or an output. On reset, GPIOs default to being inputs.
- In input mode, can generate interrupts on high level, low level, rising edge, falling edge, or both edges.
- In output mode, can be configured for 2-mA, 4-mA, or 8-mA drive strength. The 8-mA drive strength configuration has optional slew rate control to limit the rise and fall times of the signal. On reset, GPIOs default to 2-mA drive strength.
- Optional weak pull-up or pull-down resistors. On reset, GPIOs default to no pull-up or pull-down resistors.
- Optional open-drain operation. On reset, GPIOs default to standard push/pull operation.
- Can be configured to be a GPIO or a peripheral pin. On reset, the default is GPIO. Note that not all pins on all parts have peripheral functions, in which case the pin is only useful as a GPIO.
An important aspect to consider is that tm4clib uses the AHB aperture for accessing the GPIO registers on the TM4C. The AHB must be explicitly enabled with a call to gpio_enable_ahb_aperture() before accessing any GPIO functionality.
Please see the individual GPIO modules for more details. To use the GPIO, the gpio.h header needs to be included:
- GPIO pin configuration
- Enabling and configuring GPIO pins
- GPIO pin control
- Controlling GPIO pins
- GPIO Interrupt control
- Configuring interrupts from GPIO pins
#define GPIO_LOCK_UNLOCK_CODE 0x4C4F434B