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
Refer to the driver examples codes located at <SDK_ROOT>/boards/<BOARD>/driver_examples/gpio
Input Operation
Refer to the driver examples codes located at <SDK_ROOT>/boards/<BOARD>/driver_examples/gpio
|
static void | FGPIO_PinWrite (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_PortSet (FGPIO_Type *base, uint32_t mask) |
| Sets the output level of the multiple FGPIO pins to the logic 1. More...
|
|
static void | FGPIO_PortClear (FGPIO_Type *base, uint32_t mask) |
| Sets the output level of the multiple FGPIO pins to the logic 0. More...
|
|
static void | FGPIO_PortToggle (FGPIO_Type *base, uint32_t mask) |
| Reverses the current output logic of the multiple FGPIO pins. More...
|
|
|
static uint32_t | FGPIO_PinRead (FGPIO_Type *base, uint32_t pin) |
| Reads the current input value of the FGPIO port. 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:
* Define a digital input pin configuration,
* {
* 0,
* }
* Define a digital output pin configuration,
* {
* 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_PinWrite |
( |
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_PortSet |
( |
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_PortClear |
( |
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_PortToggle |
( |
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_PinRead |
( |
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_PortGetInterruptFlags |
( |
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_PortClearInterruptFlags |
( |
FGPIO_Type * |
base, |
|
|
uint32_t |
mask |
|
) |
| |
- Parameters
-
base | FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.) |
mask | FGPIO pin number macro |