The KSDK provides a peripheral driver for the General-Purpose Input/Output (GPIO) module of Kinetis devices.
Typical use case
Output Operation
{
kGpioDigitalOutput,
1,
};
Input Operation
NVIC_EnableIRQ(BOARD_SW2_IRQ);
{
kGpioDigitalInput,
0,
};
|
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 current output logic of the multiple GPIO pins. More...
|
|
|
static uint32_t | GPIO_ReadPinInput (GPIO_Type *base, uint32_t pin) |
| Reads the current input value of the whole GPIO port. More...
|
|
void GPIO_PinInit |
( |
GPIO_Type * |
base, |
|
|
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:
*
* {
* 0,
* }
*
* {
* 0,
* }
*
- Parameters
-
base | GPIO peripheral base pointer(GPIOA, GPIOB, GPIOC, and so on.) |
pin | GPIO port pin number |
config | GPIO pin configuration pointer |
static void GPIO_WritePinOutput |
( |
GPIO_Type * |
base, |
|
|
uint32_t |
pin, |
|
|
uint8_t |
output |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | GPIO peripheral base pointer(GPIOA, GPIOB, GPIOC, and so on.) |
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 void GPIO_SetPinsOutput |
( |
GPIO_Type * |
base, |
|
|
uint32_t |
mask |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | GPIO peripheral base pointer(GPIOA, GPIOB, GPIOC, and so on.) |
mask | GPIO pin number macro |
static void GPIO_ClearPinsOutput |
( |
GPIO_Type * |
base, |
|
|
uint32_t |
mask |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | GPIO peripheral base pointer(GPIOA, GPIOB, GPIOC, and so on.) |
mask | GPIO pin number macro |
static void GPIO_TogglePinsOutput |
( |
GPIO_Type * |
base, |
|
|
uint32_t |
mask |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | GPIO peripheral base pointer(GPIOA, GPIOB, GPIOC, and so on.) |
mask | GPIO pin number macro |
static uint32_t GPIO_ReadPinInput |
( |
GPIO_Type * |
base, |
|
|
uint32_t |
pin |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | GPIO peripheral base pointer(GPIOA, GPIOB, GPIOC, and so on.) |
pin | GPIO pin number |
- Return values
-
GPIO | port 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
-
base | GPIO peripheral base pointer(GPIOA, GPIOB, GPIOC, and so on.) |
- Return values
-
Current | 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
-
base | GPIO peripheral base pointer(GPIOA, GPIOB, GPIOC, and so on.) |
mask | GPIO pin number macro |