General Purpose Input/Output (GPIO) API. More...
![]() |
Enumerations | |
enum | GPIO_Port_TypeDef { gpioPortA = 0, gpioPortB = 1, gpioPortC = 2, gpioPortD = 3, gpioPortE = 4, gpioPortF = 5 } |
enum | GPIO_DriveMode_TypeDef { gpioDriveModeStandard = GPIO_P_CTRL_DRIVEMODE_STANDARD, gpioDriveModeLowest = GPIO_P_CTRL_DRIVEMODE_LOWEST, gpioDriveModeHigh = GPIO_P_CTRL_DRIVEMODE_HIGH, gpioDriveModeLow = GPIO_P_CTRL_DRIVEMODE_LOW } |
enum | GPIO_Mode_TypeDef { gpioModeDisabled = _GPIO_P_MODEL_MODE0_DISABLED, gpioModeInput = _GPIO_P_MODEL_MODE0_INPUT, gpioModeInputPull = _GPIO_P_MODEL_MODE0_INPUTPULL, gpioModeInputPullFilter = _GPIO_P_MODEL_MODE0_INPUTPULLFILTER, gpioModePushPull = _GPIO_P_MODEL_MODE0_PUSHPULL, gpioModePushPullDrive = _GPIO_P_MODEL_MODE0_PUSHPULLDRIVE, gpioModeWiredOr = _GPIO_P_MODEL_MODE0_WIREDOR, gpioModeWiredOrPullDown = _GPIO_P_MODEL_MODE0_WIREDORPULLDOWN, gpioModeWiredAnd = _GPIO_P_MODEL_MODE0_WIREDAND, gpioModeWiredAndFilter = _GPIO_P_MODEL_MODE0_WIREDANDFILTER, gpioModeWiredAndPullUp = _GPIO_P_MODEL_MODE0_WIREDANDPULLUP, gpioModeWiredAndPullUpFilter = _GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER, gpioModeWiredAndDrive = _GPIO_P_MODEL_MODE0_WIREDANDDRIVE, gpioModeWiredAndDriveFilter = _GPIO_P_MODEL_MODE0_WIREDANDDRIVEFILTER, gpioModeWiredAndDrivePullUp = _GPIO_P_MODEL_MODE0_WIREDANDDRIVEPULLUP, gpioModeWiredAndDrivePullUpFilter = _GPIO_P_MODEL_MODE0_WIREDANDDRIVEPULLUPFILTER } |
Functions | |
void | GPIO_DbgLocationSet (unsigned int location) |
Sets the pin location of the debug pins (Serial Wire interface). | |
void | GPIO_IntConfig (GPIO_Port_TypeDef port, unsigned int pin, bool risingEdge, bool fallingEdge, bool enable) |
Configure GPIO interrupt. | |
void | GPIO_PinModeSet (GPIO_Port_TypeDef port, unsigned int pin, GPIO_Mode_TypeDef mode, unsigned int out) |
Set the mode for a GPIO pin. | |
__STATIC_INLINE void | GPIO_DbgSWDClkEnable (bool enable) |
Enable/disable serial wire clock pin. | |
__STATIC_INLINE void | GPIO_DbgSWDIOEnable (bool enable) |
Enable/disable serial wire data pin. | |
void | GPIO_DriveModeSet (GPIO_Port_TypeDef port, GPIO_DriveMode_TypeDef mode) |
Sets the drive mode for a GPIO port. | |
__STATIC_INLINE void | GPIO_InputSenseSet (uint32_t val, uint32_t mask) |
Enable/disable input sensing. | |
__STATIC_INLINE void | GPIO_IntClear (uint32_t flags) |
Clear one or more pending GPIO interrupts. | |
__STATIC_INLINE void | GPIO_IntDisable (uint32_t flags) |
Disable one or more GPIO interrupts. | |
__STATIC_INLINE void | GPIO_IntEnable (uint32_t flags) |
Enable one or more GPIO interrupts. | |
__STATIC_INLINE uint32_t | GPIO_IntGet (void) |
Get pending GPIO interrupts. | |
__STATIC_INLINE uint32_t | GPIO_IntGetEnabled (void) |
Get enabled and pending GPIO interrupt flags. Useful for handling more interrupt sources in the same interrupt handler. | |
__STATIC_INLINE void | GPIO_IntSet (uint32_t flags) |
Set one or more pending GPIO interrupts from SW. | |
__STATIC_INLINE void | GPIO_Lock (void) |
Locks the GPIO configuration. | |
__STATIC_INLINE unsigned int | GPIO_PinInGet (GPIO_Port_TypeDef port, unsigned int pin) |
Read the pad value for a single pin in a GPIO port. | |
__STATIC_INLINE void | GPIO_PinOutClear (GPIO_Port_TypeDef port, unsigned int pin) |
Set a single pin in GPIO data out port register to 0. | |
__STATIC_INLINE unsigned int | GPIO_PinOutGet (GPIO_Port_TypeDef port, unsigned int pin) |
Get current setting for a pin in a GPIO port data out register. | |
__STATIC_INLINE void | GPIO_PinOutSet (GPIO_Port_TypeDef port, unsigned int pin) |
Set a single pin in GPIO data out register to 1. | |
__STATIC_INLINE void | GPIO_PinOutToggle (GPIO_Port_TypeDef port, unsigned int pin) |
Toggle a single pin in GPIO port data out register. | |
__STATIC_INLINE uint32_t | GPIO_PortInGet (GPIO_Port_TypeDef port) |
Read the pad values for GPIO port. | |
__STATIC_INLINE void | GPIO_PortOutClear (GPIO_Port_TypeDef port, uint32_t pins) |
Set bits in DOUT register for a port to 0. | |
__STATIC_INLINE uint32_t | GPIO_PortOutGet (GPIO_Port_TypeDef port) |
Get current setting for a GPIO port data out register. | |
__STATIC_INLINE void | GPIO_PortOutSet (GPIO_Port_TypeDef port, uint32_t pins) |
Set bits GPIO data out register to 1. | |
__STATIC_INLINE void | GPIO_PortOutSetVal (GPIO_Port_TypeDef port, uint32_t val, uint32_t mask) |
Set GPIO port data out register. | |
__STATIC_INLINE void | GPIO_PortOutToggle (GPIO_Port_TypeDef port, uint32_t pins) |
Toggle a single pin in GPIO port data out register. | |
__STATIC_INLINE void | GPIO_Unlock (void) |
Unlocks the GPIO configuration. |
General Purpose Input/Output (GPIO) API.
enum GPIO_Mode_TypeDef |
Pin mode. For more details on each mode, please refer to the EFM32 reference manual.
enum GPIO_Port_TypeDef |
void GPIO_DbgLocationSet | ( | unsigned int | location | ) |
__STATIC_INLINE void GPIO_DbgSWDClkEnable | ( | bool | enable | ) |
Enable/disable serial wire clock pin.
[in] | enable |
|
Definition at line 173 of file em_gpio.h.
References BITBAND_Peripheral().
__STATIC_INLINE void GPIO_DbgSWDIOEnable | ( | bool | enable | ) |
Enable/disable serial wire data pin.
[in] | enable |
|
Definition at line 191 of file em_gpio.h.
References BITBAND_Peripheral().
void GPIO_DriveModeSet | ( | GPIO_Port_TypeDef | port, | |
GPIO_DriveMode_TypeDef | mode | |||
) |
__STATIC_INLINE void GPIO_InputSenseSet | ( | uint32_t | val, | |
uint32_t | mask | |||
) |
Enable/disable input sensing.
Disabling input sensing if not used, can save some energy consumption.
[in] | val | Bitwise logic OR of one or more of:
|
[in] | mask | Mask containing bitwise logic OR of bits similar as for val used to indicate which input sense options to disable/enable. |
__STATIC_INLINE void GPIO_IntClear | ( | uint32_t | flags | ) |
void GPIO_IntConfig | ( | GPIO_Port_TypeDef | port, | |
unsigned int | pin, | |||
bool | risingEdge, | |||
bool | fallingEdge, | |||
bool | enable | |||
) |
Configure GPIO interrupt.
If reconfiguring a GPIO interrupt that is already enabled, it is generally recommended to disable it first, see GPIO_Disable().
The actual GPIO interrupt handler must be in place before enabling the interrupt.
Notice that any pending interrupt for the selected pin is cleared by this function.
[in] | port | The port to associate with pin . |
[in] | pin | The GPIO interrupt number (= port pin). |
[in] | risingEdge | Set to true if interrupts shall be enabled on rising edge, otherwise false. |
[in] | fallingEdge | Set to true if interrupts shall be enabled on falling edge, otherwise false. |
[in] | enable | Set to true if interrupt shall be enabled after configuration completed, false to leave disabled. See GPIO_IntDisable() and GPIO_IntEnable(). |
Definition at line 143 of file em_gpio.c.
References BITBAND_Peripheral().
__STATIC_INLINE void GPIO_IntDisable | ( | uint32_t | flags | ) |
__STATIC_INLINE void GPIO_IntEnable | ( | uint32_t | flags | ) |
Enable one or more GPIO interrupts.
[in] | flags | GPIO interrupt sources to enable. |
__STATIC_INLINE uint32_t GPIO_IntGet | ( | void | ) |
__STATIC_INLINE uint32_t GPIO_IntGetEnabled | ( | void | ) |
Get enabled and pending GPIO interrupt flags. Useful for handling more interrupt sources in the same interrupt handler.
__STATIC_INLINE void GPIO_IntSet | ( | uint32_t | flags | ) |
__STATIC_INLINE void GPIO_Lock | ( | void | ) |
__STATIC_INLINE unsigned int GPIO_PinInGet | ( | GPIO_Port_TypeDef | port, | |
unsigned int | pin | |||
) |
void GPIO_PinModeSet | ( | GPIO_Port_TypeDef | port, | |
unsigned int | pin, | |||
GPIO_Mode_TypeDef | mode, | |||
unsigned int | out | |||
) |
Set the mode for a GPIO pin.
[in] | port | The GPIO port to access. |
[in] | pin | The pin number in the port. |
[in] | mode | The desired pin mode. |
[in] | out | Value to set for pin in DOUT register. The DOUT setting is important for even some input mode configurations, determining pull-up/down direction. |
Definition at line 199 of file em_gpio.c.
References gpioModeDisabled.
__STATIC_INLINE void GPIO_PinOutClear | ( | GPIO_Port_TypeDef | port, | |
unsigned int | pin | |||
) |
Set a single pin in GPIO data out port register to 0.
[in] | port | The GPIO port to access. |
[in] | pin | The pin to set. |
__STATIC_INLINE unsigned int GPIO_PinOutGet | ( | GPIO_Port_TypeDef | port, | |
unsigned int | pin | |||
) |
__STATIC_INLINE void GPIO_PinOutSet | ( | GPIO_Port_TypeDef | port, | |
unsigned int | pin | |||
) |
Set a single pin in GPIO data out register to 1.
[in] | port | The GPIO port to access. |
[in] | pin | The pin to set. |
__STATIC_INLINE void GPIO_PinOutToggle | ( | GPIO_Port_TypeDef | port, | |
unsigned int | pin | |||
) |
Toggle a single pin in GPIO port data out register.
[in] | port | The GPIO port to access. |
[in] | pin | The pin to toggle. |
__STATIC_INLINE uint32_t GPIO_PortInGet | ( | GPIO_Port_TypeDef | port | ) |
__STATIC_INLINE void GPIO_PortOutClear | ( | GPIO_Port_TypeDef | port, | |
uint32_t | pins | |||
) |
Set bits in DOUT register for a port to 0.
[in] | port | The GPIO port to access. |
[in] | pins | Bit mask for bits to clear in DOUT register. |
__STATIC_INLINE uint32_t GPIO_PortOutGet | ( | GPIO_Port_TypeDef | port | ) |
__STATIC_INLINE void GPIO_PortOutSet | ( | GPIO_Port_TypeDef | port, | |
uint32_t | pins | |||
) |
Set bits GPIO data out register to 1.
[in] | port | The GPIO port to access. |
[in] | pins | Bit mask for bits to set to 1 in DOUT register. |
__STATIC_INLINE void GPIO_PortOutSetVal | ( | GPIO_Port_TypeDef | port, | |
uint32_t | val, | |||
uint32_t | mask | |||
) |
Set GPIO port data out register.
[in] | port | The GPIO port to access. |
[in] | val | Value to write to port data out register. |
[in] | mask | Mask indicating which bits to modify. |
__STATIC_INLINE void GPIO_PortOutToggle | ( | GPIO_Port_TypeDef | port, | |
uint32_t | pins | |||
) |
Toggle a single pin in GPIO port data out register.
[in] | port | The GPIO port to access. |
[in] | pins | Bitmask with pins to toggle. |