This section describes the programming interface of the FGPIO driver. The FGPIO driver configures the FGPIO module and provides a functional interface to build the GPIO application.
- Note
- FGPIO (Fast GPIO) is only available in a few MCUs. FGPIO and GPIO share the same peripheral but use different registers. FGPIO is closer to the core than the regular GPIO and it's faster to read and write.
Typical use case
Output Operation
{
kGpioDigitalOutput,
1,
};
Input Operation
NVIC_EnableIRQ(BOARD_SW2_IRQ);
{
kGpioDigitalInput,
0,
};
|
static void | FGPIO_WritePinOutput (FGPIO_Type *base, uint32_t pin, uint8_t output) |
| Sets the output level of the multiple FGPIO pins to the logic 1 or 0. More...
|
|
static void | FGPIO_SetPinsOutput (FGPIO_Type *base, uint32_t mask) |
| Sets the output level of the multiple FGPIO pins to the logic 1. More...
|
|
static void | FGPIO_ClearPinsOutput (FGPIO_Type *base, uint32_t mask) |
| Sets the output level of the multiple FGPIO pins to the logic 0. More...
|
|
static void | FGPIO_TogglePinsOutput (FGPIO_Type *base, uint32_t mask) |
| Reverses the current output logic of the multiple FGPIO pins. More...
|
|
void FGPIO_PinInit |
( |
FGPIO_Type * |
base, |
|
|
uint32_t |
pin, |
|
|
const gpio_pin_config_t * |
config |
|
) |
| |
To initialize the FGPIO driver, define a pin configuration, as either input or output, in the user file. Then, call the FGPIO_PinInit() function.
This is an example to define an input pin or an output pin configuration:
*
* {
* 0,
* }
*
* {
* 0,
* }
*
- Parameters
-
base | FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.) |
pin | FGPIO port pin number |
config | FGPIO pin configuration pointer |
static void FGPIO_WritePinOutput |
( |
FGPIO_Type * |
base, |
|
|
uint32_t |
pin, |
|
|
uint8_t |
output |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.) |
pin | FGPIO pin number |
output | FGPIOpin output logic level.
- 0: corresponding pin output low-logic level.
- 1: corresponding pin output high-logic level.
|
static void FGPIO_SetPinsOutput |
( |
FGPIO_Type * |
base, |
|
|
uint32_t |
mask |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.) |
mask | FGPIO pin number macro |
static void FGPIO_ClearPinsOutput |
( |
FGPIO_Type * |
base, |
|
|
uint32_t |
mask |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.) |
mask | FGPIO pin number macro |
static void FGPIO_TogglePinsOutput |
( |
FGPIO_Type * |
base, |
|
|
uint32_t |
mask |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.) |
mask | FGPIO pin number macro |
static uint32_t FGPIO_ReadPinInput |
( |
FGPIO_Type * |
base, |
|
|
uint32_t |
pin |
|
) |
| |
|
inlinestatic |
- Parameters
-
base | FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.) |
pin | FGPIO pin number |
- Return values
-
FGPIO | port input value
- 0: corresponding pin input low-logic level.
- 1: corresponding pin input high-logic level.
|
uint32_t FGPIO_GetPinsInterruptFlags |
( |
FGPIO_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 | FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.) |
- Return values
-
The | current FGPIO port interrupt status flags, for example, 0x00010001 means the pin 0 and 17 have the interrupt. |
void FGPIO_ClearPinsInterruptFlags |
( |
FGPIO_Type * |
base, |
|
|
uint32_t |
mask |
|
) |
| |
- Parameters
-
base | FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.) |
mask | FGPIO pin number macro |