The MCUXpresso SDK provides a peripheral driver for the General Purpose I/O (GPIO) module of MCUXpresso SDK devices.
Function groups
Initialization and deinitialization
The function GPIO_PinInit() initializes the GPIO with specified configuration.
Pin manipulation
The function GPIO_PinWrite() set output state of selected GPIO pin. The function GPIO_PinRead() read input value of selected GPIO pin.
Port manipulation
The function GPIO_PortSet() sets the output level of selected GPIO pins to the logic 1. The function GPIO_PortClear() sets the output level of selected GPIO pins to the logic 0. The function GPIO_PortToggle() reverse the output level of selected GPIO pins. The function GPIO_PortRead() read input value of selected port.
Port masking
The function GPIO_PortMaskedSet() set port mask, only pins masked by 0 will be enabled in following functions. The function GPIO_PortMaskedWrite() sets the state of selected GPIO port, only pins masked by 0 will be affected. The function GPIO_PortMaskedRead() reads the state of selected GPIO port, only pins masked by 0 are enabled for read, pins masked by 1 are read as 0.
Typical use case
Example use of GPIO API. Refer to the driver examples codes located at <SDK_ROOT>/boards/<BOARD>/driver_examples/gpio 
 | 
| static void  | GPIO_PortSet (GPIO_Type *base, uint32_t port, uint32_t mask) | 
|   | Sets the output level of the multiple GPIO pins to the logic 1.  More...
  | 
|   | 
| static void  | GPIO_PortClear (GPIO_Type *base, uint32_t port, uint32_t mask) | 
|   | Sets the output level of the multiple GPIO pins to the logic 0.  More...
  | 
|   | 
| static void  | GPIO_PortToggle (GPIO_Type *base, uint32_t port, uint32_t mask) | 
|   | Reverses current output logic of the multiple GPIO pins.  More...
  | 
|   | 
 | 
| static void  | GPIO_PinWrite (GPIO_Type *base, uint32_t port, uint32_t pin, uint8_t output) | 
|   | Sets the output level of the one GPIO pin to the logic 1 or 0.  More...
  | 
|   | 
 | 
| static uint32_t  | GPIO_PinRead (GPIO_Type *base, uint32_t port, uint32_t pin) | 
|   | Reads the current input value of the GPIO PIN.  More...
  | 
|   | 
Every pin can only be configured as either output pin or input pin at a time. If configured as a input pin, then leave the outputConfig unused. 
 
 
 
| Enumerator | 
|---|
| kGPIO_DigitalInput  | 
 Set current pin as digital input.  
 | 
| kGPIO_DigitalOutput  | 
 Set current pin as digital output.  
 | 
 
 
      
        
          | void GPIO_PortInit  | 
          ( | 
          GPIO_Type *  | 
          base,  | 
        
        
           | 
           | 
          uint32_t  | 
          port  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
This function ungates the GPIO clock.
- Parameters
 - 
  
    | base | GPIO peripheral base pointer.  | 
    | port | GPIO port number.  | 
  
   
 
 
      
        
          | void GPIO_PinInit  | 
          ( | 
          GPIO_Type *  | 
          base,  | 
        
        
           | 
           | 
          uint32_t  | 
          port,  | 
        
        
           | 
           | 
          uint32_t  | 
          pin,  | 
        
        
           | 
           | 
          const gpio_pin_config_t *  | 
          config  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
To initialize the GPIO, define a pin configuration, either input or output, in the user file. Then, call the GPIO_PinInit() function.
This is an example to define an input pin or output pin configuration: 
* Define a digital input pin configuration,
* {
*   0,
* }
* Define a digital output pin configuration,
* {
*   0,
* }
* 
- Parameters
 - 
  
    | base | GPIO peripheral base pointer(Typically GPIO)  | 
    | port | GPIO port number  | 
    | pin | GPIO pin number  | 
    | config | GPIO pin configuration pointer  | 
  
   
 
 
  
  
      
        
          | static void GPIO_PinWrite  | 
          ( | 
          GPIO_Type *  | 
          base,  | 
         
        
           | 
           | 
          uint32_t  | 
          port,  | 
         
        
           | 
           | 
          uint32_t  | 
          pin,  | 
         
        
           | 
           | 
          uint8_t  | 
          output  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inlinestatic   | 
  
 
- Parameters
 - 
  
    | base | GPIO peripheral base pointer(Typically GPIO)  | 
    | port | GPIO port number  | 
    | pin | GPIO pin number  | 
    | output | GPIO pin output logic level.
- 0: corresponding pin output low-logic level.
 
- 1: corresponding pin output high-logic level. 
 
 
 | 
  
   
 
 
  
  
      
        
          | static uint32_t GPIO_PinRead  | 
          ( | 
          GPIO_Type *  | 
          base,  | 
         
        
           | 
           | 
          uint32_t  | 
          port,  | 
         
        
           | 
           | 
          uint32_t  | 
          pin  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inlinestatic   | 
  
 
- Parameters
 - 
  
    | base | GPIO peripheral base pointer(Typically GPIO)  | 
    | port | GPIO port number  | 
    | pin | GPIO pin number  | 
  
   
- Return values
 - 
  
    | GPIO | port input value
- 0: corresponding pin input low-logic level.
 
- 1: corresponding pin input high-logic level. 
 
 
 | 
  
   
 
 
  
  
      
        
          | static void GPIO_PortSet  | 
          ( | 
          GPIO_Type *  | 
          base,  | 
         
        
           | 
           | 
          uint32_t  | 
          port,  | 
         
        
           | 
           | 
          uint32_t  | 
          mask  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inlinestatic   | 
  
 
- Parameters
 - 
  
    | base | GPIO peripheral base pointer(Typically GPIO)  | 
    | port | GPIO port number  | 
    | mask | GPIO pin number macro  | 
  
   
 
 
  
  
      
        
          | static void GPIO_PortClear  | 
          ( | 
          GPIO_Type *  | 
          base,  | 
         
        
           | 
           | 
          uint32_t  | 
          port,  | 
         
        
           | 
           | 
          uint32_t  | 
          mask  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inlinestatic   | 
  
 
- Parameters
 - 
  
    | base | GPIO peripheral base pointer(Typically GPIO)  | 
    | port | GPIO port number  | 
    | mask | GPIO pin number macro  | 
  
   
 
 
  
  
      
        
          | static void GPIO_PortToggle  | 
          ( | 
          GPIO_Type *  | 
          base,  | 
         
        
           | 
           | 
          uint32_t  | 
          port,  | 
         
        
           | 
           | 
          uint32_t  | 
          mask  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inlinestatic   | 
  
 
- Parameters
 - 
  
    | base | GPIO peripheral base pointer(Typically GPIO)  | 
    | port | GPIO port number  | 
    | mask | GPIO pin number macro  |