MCUXpresso SDK API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages

Overview

The MCUXpresso SDK provides a peripheral driver for the General-Purpose Input/Output (GPIO) module of MCUXpresso SDK devices.

Typical use case

Output Operation

/* Output pin configuration */
gpio_pin_config_t led_config =
{
kGpioDigitalOutput,
1,
};
/* Sets the configuration */
GPIO_PinInit(GPIO_LED, LED_PINNUM, &led_config);

Input Operation

/* Input pin configuration */
PORT_SetPinInterruptConfig(BOARD_SW2_PORT, BOARD_SW2_GPIO_PIN, kPORT_InterruptFallingEdge);
NVIC_EnableIRQ(BOARD_SW2_IRQ);
gpio_pin_config_t sw1_config =
{
kGpioDigitalInput,
0,
};
/* Sets the input pin configuration */
GPIO_PinInit(GPIO_SW1, SW1_PINNUM, &sw1_config);

GPIO Configuration

void GPIO_PinInit (GPIO_Type *base, uint32_t pin, const gpio_pin_config_t *config)
 Initializes a GPIO pin used by the board. More...
 

GPIO Output Operations

static void GPIO_WritePinOutput (GPIO_Type *base, uint32_t pin, uint8_t output)
 Sets the output level of the multiple GPIO pins to the logic 1 or 0. More...
 
static void GPIO_SetPinsOutput (GPIO_Type *base, uint32_t mask)
 Sets the output level of the multiple GPIO pins to the logic 1. More...
 
static void GPIO_ClearPinsOutput (GPIO_Type *base, uint32_t mask)
 Sets the output level of the multiple GPIO pins to the logic 0. More...
 
static void GPIO_TogglePinsOutput (GPIO_Type *base, uint32_t mask)
 Reverses the current output logic of the multiple GPIO pins. More...
 

GPIO Input Operations

static uint32_t GPIO_ReadPinInput (GPIO_Type *base, uint32_t pin)
 Reads the current input value of the GPIO port. More...
 

GPIO Interrupt

uint32_t GPIO_GetPinsInterruptFlags (GPIO_Type *base)
 Reads the GPIO port interrupt status flag. More...
 
void GPIO_ClearPinsInterruptFlags (GPIO_Type *base, uint32_t mask)
 Clears multiple GPIO pin interrupt status flags. More...
 
void GPIO_CheckAttributeBytes (GPIO_Type *base, gpio_checker_attribute_t attribute)
 The GPIO module supports a device-specific number of data ports, organized as 32-bit words. More...
 

Function Documentation

void GPIO_PinInit ( GPIO_Type *  base,
uint32_t  pin,
const gpio_pin_config_t config 
)

To initialize the GPIO, define a pin configuration, as either input or output, in the user file. Then, call the GPIO_PinInit() function.

This is an example to define an input pin or an output pin configuration.

* // Define a digital input pin configuration,
* {
* 0,
* }
* //Define a digital output pin configuration,
* {
* 0,
* }
*
Parameters
baseGPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
pinGPIO port pin number
configGPIO pin configuration pointer
static void GPIO_WritePinOutput ( GPIO_Type *  base,
uint32_t  pin,
uint8_t  output 
)
inlinestatic
Parameters
baseGPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
pinGPIO pin number
outputGPIO pin output logic level.
  • 0: corresponding pin output low-logic level.
  • 1: corresponding pin output high-logic level.
static void GPIO_SetPinsOutput ( GPIO_Type *  base,
uint32_t  mask 
)
inlinestatic
Parameters
baseGPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
maskGPIO pin number macro
static void GPIO_ClearPinsOutput ( GPIO_Type *  base,
uint32_t  mask 
)
inlinestatic
Parameters
baseGPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
maskGPIO pin number macro
static void GPIO_TogglePinsOutput ( GPIO_Type *  base,
uint32_t  mask 
)
inlinestatic
Parameters
baseGPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
maskGPIO pin number macro
static uint32_t GPIO_ReadPinInput ( GPIO_Type *  base,
uint32_t  pin 
)
inlinestatic
Parameters
baseGPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
pinGPIO pin number
Return values
GPIOport input value
  • 0: corresponding pin input low-logic level.
  • 1: corresponding pin input high-logic level.
uint32_t GPIO_GetPinsInterruptFlags ( GPIO_Type *  base)

If a pin is configured to generate the DMA request, the corresponding flag is cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic one is written to that flag. If configured for a level sensitive interrupt that remains asserted, the flag is set again immediately.

Parameters
baseGPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
Return values
Thecurrent GPIO port interrupt status flag, for example, 0x00010001 means the pin 0 and 17 have the interrupt.
void GPIO_ClearPinsInterruptFlags ( GPIO_Type *  base,
uint32_t  mask 
)
Parameters
baseGPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
maskGPIO pin number macro
void GPIO_CheckAttributeBytes ( GPIO_Type *  base,
gpio_checker_attribute_t  attribute 
)

Each 32-bit data port includes a GACR register, which defines the byte-level attributes required for a successful access to the GPIO programming model. The attribute controls for the 4 data bytes in the GACR follow a standard little endian data convention.

Parameters
baseGPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
maskGPIO pin number macro