GPIO driver modules.
More...
|
| #define | IS_GPIO_ALL_PERIPH(PERIPH) |
| |
| #define | IS_GPIO_MODE(MODE) |
| |
|
#define | IS_GPIO_OTYPE(OTYPE) (((OTYPE) == GPIO_OType_PP) || ((OTYPE) == GPIO_OType_OD)) |
| |
|
#define | GPIO_Speed_2MHz GPIO_Low_Speed |
| |
|
#define | GPIO_Speed_25MHz GPIO_Medium_Speed |
| |
|
#define | GPIO_Speed_50MHz GPIO_Fast_Speed |
| |
|
#define | GPIO_Speed_100MHz GPIO_High_Speed |
| |
| #define | IS_GPIO_SPEED(SPEED) |
| |
| #define | IS_GPIO_PUPD(PUPD) |
| |
|
#define | IS_GPIO_BIT_ACTION(ACTION) (((ACTION) == Bit_RESET) || ((ACTION) == Bit_SET)) |
| |
|
| enum | GPIOMode_TypeDef { GPIO_Mode_IN = 0x00,
GPIO_Mode_OUT = 0x01,
GPIO_Mode_AF = 0x02,
GPIO_Mode_AN = 0x03
} |
| | GPIO Configuration Mode enumeration. More...
|
| |
| enum | GPIOOType_TypeDef { GPIO_OType_PP = 0x00,
GPIO_OType_OD = 0x01
} |
| | GPIO Output type enumeration.
|
| |
| enum | GPIOSpeed_TypeDef { GPIO_Low_Speed = 0x00,
GPIO_Medium_Speed = 0x01,
GPIO_Fast_Speed = 0x02,
GPIO_High_Speed = 0x03
} |
| | GPIO Output Maximum frequency enumeration. More...
|
| |
| enum | GPIOPuPd_TypeDef { GPIO_PuPd_NOPULL = 0x00,
GPIO_PuPd_UP = 0x01,
GPIO_PuPd_DOWN = 0x02
} |
| | GPIO Configuration PullUp PullDown enumeration.
|
| |
| enum | BitAction { Bit_RESET = 0,
Bit_SET
} |
| | GPIO Bit SET and Bit RESET enumeration.
|
| |
|
| void | GPIO_DeInit (GPIO_TypeDef *GPIOx) |
| | De-initializes the GPIOx peripheral registers to their default reset values. More...
|
| |
| void | GPIO_Init (GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_InitStruct) |
| | Initializes the GPIOx peripheral according to the specified parameters in the GPIO_InitStruct. More...
|
| |
| void | GPIO_StructInit (GPIO_InitTypeDef *GPIO_InitStruct) |
| | Fills each GPIO_InitStruct member with its default value. More...
|
| |
| void | GPIO_PinLockConfig (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) |
| | Locks GPIO Pins configuration registers. More...
|
| |
| uint8_t | GPIO_ReadInputDataBit (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) |
| | Reads the specified input port pin. More...
|
| |
| uint16_t | GPIO_ReadInputData (GPIO_TypeDef *GPIOx) |
| | Reads the specified GPIO input data port. More...
|
| |
| uint8_t | GPIO_ReadOutputDataBit (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) |
| | Reads the specified output data port bit. More...
|
| |
| uint16_t | GPIO_ReadOutputData (GPIO_TypeDef *GPIOx) |
| | Reads the specified GPIO output data port. More...
|
| |
| void | GPIO_SetBits (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) |
| | Sets the selected data port bits. More...
|
| |
| void | GPIO_ResetBits (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) |
| | Clears the selected data port bits. More...
|
| |
| void | GPIO_WriteBit (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, BitAction BitVal) |
| | Sets or clears the selected data port bit. More...
|
| |
| void | GPIO_Write (GPIO_TypeDef *GPIOx, uint16_t PortVal) |
| | Writes data to the specified GPIO data port. More...
|
| |
| void | GPIO_ToggleBits (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) |
| | Toggles the specified GPIO pins.. More...
|
| |
| void | GPIO_PinAFConfig (GPIO_TypeDef *GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF) |
| | Changes the mapping of the specified pin. More...
|
| |
GPIO driver modules.
| #define IS_GPIO_ALL_PERIPH |
( |
|
PERIPH | ) |
|
Value:(((PERIPH) == GPIOA) || \
((PERIPH) == GPIOB) || \
((PERIPH) == GPIOC) || \
((PERIPH) == GPIOD) || \
((PERIPH) == GPIOE) || \
((PERIPH) == GPIOF) || \
((PERIPH) == GPIOG) || \
((PERIPH) == GPIOH) || \
((PERIPH) == GPIOI) || \
((PERIPH) == GPIOJ) || \
((PERIPH) == GPIOK))
| #define IS_GPIO_MODE |
( |
|
MODE | ) |
|
Value:
Definition: stm32f4xx_gpio.h:67
Definition: stm32f4xx_gpio.h:69
Definition: stm32f4xx_gpio.h:70
Definition: stm32f4xx_gpio.h:68
| #define IS_GPIO_PUPD |
( |
|
PUPD | ) |
|
Value:(((PUPD) == GPIO_PuPd_NOPULL) || ((PUPD) == GPIO_PuPd_UP) || \
((PUPD) == GPIO_PuPd_DOWN))
| #define IS_GPIO_SPEED |
( |
|
SPEED | ) |
|
Value:
Definition: stm32f4xx_gpio.h:93
Definition: stm32f4xx_gpio.h:92
Definition: stm32f4xx_gpio.h:91
Definition: stm32f4xx_gpio.h:94
GPIO Configuration Mode enumeration.
| Enumerator |
|---|
| GPIO_Mode_IN |
GPIO Input Mode
|
| GPIO_Mode_OUT |
GPIO Output Mode
|
| GPIO_Mode_AF |
GPIO Alternate function Mode
|
| GPIO_Mode_AN |
GPIO Analog Mode
|
GPIO Output Maximum frequency enumeration.
| Enumerator |
|---|
| GPIO_Low_Speed |
Low speed
|
| GPIO_Medium_Speed |
Medium speed
|
| GPIO_Fast_Speed |
Fast speed
|
| GPIO_High_Speed |
High speed
|
De-initializes the GPIOx peripheral registers to their default reset values.
- Note
- By default, The GPIO pins are configured in input floating mode (except JTAG pins).
- Parameters
-
| GPIOx | where x can be (A..K) to select the GPIO peripheral for STM32F405xx/407xx and STM32F415xx/417xx devices x can be (A..I) to select the GPIO peripheral for STM32F42xxx/43xxx devices. x can be (A, B, C, D and H) to select the GPIO peripheral for STM32F401xx devices. |
- Return values
-
Initializes the GPIOx peripheral according to the specified parameters in the GPIO_InitStruct.
- Parameters
-
| GPIOx | where x can be (A..K) to select the GPIO peripheral for STM32F405xx/407xx and STM32F415xx/417xx devices x can be (A..I) to select the GPIO peripheral for STM32F42xxx/43xxx devices. x can be (A, B, C, D and H) to select the GPIO peripheral for STM32F401xx devices. |
| GPIO_InitStruct | pointer to a GPIO_InitTypeDef structure that contains the configuration information for the specified GPIO peripheral. |
- Return values
-
| void GPIO_PinAFConfig |
( |
GPIO_TypeDef * |
GPIOx, |
|
|
uint16_t |
GPIO_PinSource, |
|
|
uint8_t |
GPIO_AF |
|
) |
| |
Changes the mapping of the specified pin.
- Parameters
-
| GPIOx | where x can be (A..K) to select the GPIO peripheral for STM32F405xx/407xx and STM32F415xx/417xx devices x can be (A..I) to select the GPIO peripheral for STM32F42xxx/43xxx devices. x can be (A, B, C, D and H) to select the GPIO peripheral for STM32F401xx devices. |
| GPIO_PinSource | specifies the pin for the Alternate function. This parameter can be GPIO_PinSourcex where x can be (0..15). |
| GPIO_AFSelection | selects the pin to used as Alternate function. This parameter can be one of the following values:
- GPIO_AF_RTC_50Hz: Connect RTC_50Hz pin to AF0 (default after reset)
- GPIO_AF_MCO: Connect MCO pin (MCO1 and MCO2) to AF0 (default after reset)
- GPIO_AF_TAMPER: Connect TAMPER pins (TAMPER_1 and TAMPER_2) to AF0 (default after reset)
- GPIO_AF_SWJ: Connect SWJ pins (SWD and JTAG)to AF0 (default after reset)
- GPIO_AF_TRACE: Connect TRACE pins to AF0 (default after reset)
- GPIO_AF_TIM1: Connect TIM1 pins to AF1
- GPIO_AF_TIM2: Connect TIM2 pins to AF1
- GPIO_AF_TIM3: Connect TIM3 pins to AF2
- GPIO_AF_TIM4: Connect TIM4 pins to AF2
- GPIO_AF_TIM5: Connect TIM5 pins to AF2
- GPIO_AF_TIM8: Connect TIM8 pins to AF3
- GPIO_AF_TIM9: Connect TIM9 pins to AF3
- GPIO_AF_TIM10: Connect TIM10 pins to AF3
- GPIO_AF_TIM11: Connect TIM11 pins to AF3
- GPIO_AF_I2C1: Connect I2C1 pins to AF4
- GPIO_AF_I2C2: Connect I2C2 pins to AF4
- GPIO_AF_I2C3: Connect I2C3 pins to AF4
- GPIO_AF_SPI1: Connect SPI1 pins to AF5
- GPIO_AF_SPI2: Connect SPI2/I2S2 pins to AF5
- GPIO_AF_SPI4: Connect SPI4 pins to AF5
- GPIO_AF_SPI5: Connect SPI5 pins to AF5
- GPIO_AF_SPI6: Connect SPI6 pins to AF5
- GPIO_AF_SAI1: Connect SAI1 pins to AF6 for STM32F42xxx/43xxx devices.
- GPIO_AF_SPI3: Connect SPI3/I2S3 pins to AF6
- GPIO_AF_I2S3ext: Connect I2S3ext pins to AF7
- GPIO_AF_USART1: Connect USART1 pins to AF7
- GPIO_AF_USART2: Connect USART2 pins to AF7
- GPIO_AF_USART3: Connect USART3 pins to AF7
- GPIO_AF_UART4: Connect UART4 pins to AF8
- GPIO_AF_UART5: Connect UART5 pins to AF8
- GPIO_AF_USART6: Connect USART6 pins to AF8
- GPIO_AF_UART7: Connect UART7 pins to AF8
- GPIO_AF_UART8: Connect UART8 pins to AF8
- GPIO_AF_CAN1: Connect CAN1 pins to AF9
- GPIO_AF_CAN2: Connect CAN2 pins to AF9
- GPIO_AF_TIM12: Connect TIM12 pins to AF9
- GPIO_AF_TIM13: Connect TIM13 pins to AF9
- GPIO_AF_TIM14: Connect TIM14 pins to AF9
- GPIO_AF_OTG_FS: Connect OTG_FS pins to AF10
- GPIO_AF_OTG_HS: Connect OTG_HS pins to AF10
- GPIO_AF_ETH: Connect ETHERNET pins to AF11
- GPIO_AF_FSMC: Connect FSMC pins to AF12
- GPIO_AF_FMC: Connect FMC pins to AF12 for STM32F42xxx/43xxx devices.
- GPIO_AF_OTG_HS_FS: Connect OTG HS (configured in FS) pins to AF12
- GPIO_AF_SDIO: Connect SDIO pins to AF12
- GPIO_AF_DCMI: Connect DCMI pins to AF13
- GPIO_AF_LTDC: Connect LTDC pins to AF14 for STM32F429xx/439xx devices.
- GPIO_AF_EVENTOUT: Connect EVENTOUT pins to AF15
|
- Return values
-
| void GPIO_PinLockConfig |
( |
GPIO_TypeDef * |
GPIOx, |
|
|
uint16_t |
GPIO_Pin |
|
) |
| |
Locks GPIO Pins configuration registers.
- Note
- The locked registers are GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_AFRL and GPIOx_AFRH.
-
The configuration of the locked GPIO pins can no longer be modified until the next reset.
- Parameters
-
| GPIOx | where x can be (A..K) to select the GPIO peripheral for STM32F405xx/407xx and STM32F415xx/417xx devices x can be (A..I) to select the GPIO peripheral for STM32F42xxx/43xxx devices. x can be (A, B, C, D and H) to select the GPIO peripheral for STM32F401xx devices. |
| GPIO_Pin | specifies the port bit to be locked. This parameter can be any combination of GPIO_Pin_x where x can be (0..15). |
- Return values
-
Reads the specified GPIO input data port.
- Parameters
-
| GPIOx | where x can be (A..K) to select the GPIO peripheral for STM32F405xx/407xx and STM32F415xx/417xx devices x can be (A..I) to select the GPIO peripheral for STM32F42xxx/43xxx devices. x can be (A, B, C, D and H) to select the GPIO peripheral for STM32F401xx devices. |
- Return values
-
| GPIO | input data port value. |
| uint8_t GPIO_ReadInputDataBit |
( |
GPIO_TypeDef * |
GPIOx, |
|
|
uint16_t |
GPIO_Pin |
|
) |
| |
Reads the specified input port pin.
- Parameters
-
| GPIOx | where x can be (A..K) to select the GPIO peripheral for STM32F405xx/407xx and STM32F415xx/417xx devices x can be (A..I) to select the GPIO peripheral for STM32F42xxx/43xxx devices. x can be (A, B, C, D and H) to select the GPIO peripheral for STM32F401xx devices. |
| GPIO_Pin | specifies the port bit to read. This parameter can be GPIO_Pin_x where x can be (0..15). |
- Return values
-
Reads the specified GPIO output data port.
- Parameters
-
| GPIOx | where x can be (A..K) to select the GPIO peripheral for STM32F405xx/407xx and STM32F415xx/417xx devices x can be (A..I) to select the GPIO peripheral for STM32F42xxx/43xxx devices. x can be (A, B, C, D and H) to select the GPIO peripheral for STM32F401xx devices. |
- Return values
-
| GPIO | output data port value. |
| uint8_t GPIO_ReadOutputDataBit |
( |
GPIO_TypeDef * |
GPIOx, |
|
|
uint16_t |
GPIO_Pin |
|
) |
| |
Reads the specified output data port bit.
- Parameters
-
| GPIOx | where x can be (A..K) to select the GPIO peripheral for STM32F405xx/407xx and STM32F415xx/417xx devices x can be (A..I) to select the GPIO peripheral for STM32F42xxx/43xxx devices. x can be (A, B, C, D and H) to select the GPIO peripheral for STM32F401xx devices. |
| GPIO_Pin | specifies the port bit to read. This parameter can be GPIO_Pin_x where x can be (0..15). |
- Return values
-
| The | output port pin value. |
| void GPIO_ResetBits |
( |
GPIO_TypeDef * |
GPIOx, |
|
|
uint16_t |
GPIO_Pin |
|
) |
| |
Clears the selected data port bits.
- Note
- This functions uses GPIOx_BSRR register to allow atomic read/modify accesses. In this way, there is no risk of an IRQ occurring between the read and the modify access.
- Parameters
-
| GPIOx | where x can be (A..K) to select the GPIO peripheral for STM32F405xx/407xx and STM32F415xx/417xx devices x can be (A..I) to select the GPIO peripheral for STM32F42xxx/43xxx devices. x can be (A, B, C, D and H) to select the GPIO peripheral for STM32F401xx devices. |
| GPIO_Pin | specifies the port bits to be written. This parameter can be any combination of GPIO_Pin_x where x can be (0..15). |
- Return values
-
| void GPIO_SetBits |
( |
GPIO_TypeDef * |
GPIOx, |
|
|
uint16_t |
GPIO_Pin |
|
) |
| |
Sets the selected data port bits.
- Note
- This functions uses GPIOx_BSRR register to allow atomic read/modify accesses. In this way, there is no risk of an IRQ occurring between the read and the modify access.
- Parameters
-
| GPIOx | where x can be (A..K) to select the GPIO peripheral for STM32F405xx/407xx and STM32F415xx/417xx devices x can be (A..I) to select the GPIO peripheral for STM32F42xxx/43xxx devices. x can be (A, B, C, D and H) to select the GPIO peripheral for STM32F401xx devices. |
| GPIO_Pin | specifies the port bits to be written. This parameter can be any combination of GPIO_Pin_x where x can be (0..15). |
- Return values
-
Fills each GPIO_InitStruct member with its default value.
- Parameters
-
| GPIO_InitStruct | : pointer to a GPIO_InitTypeDef structure which will be initialized. |
- Return values
-
| void GPIO_ToggleBits |
( |
GPIO_TypeDef * |
GPIOx, |
|
|
uint16_t |
GPIO_Pin |
|
) |
| |
Toggles the specified GPIO pins..
- Parameters
-
| GPIOx | where x can be (A..K) to select the GPIO peripheral for STM32F405xx/407xx and STM32F415xx/417xx devices x can be (A..I) to select the GPIO peripheral for STM32F42xxx/43xxx devices. x can be (A, B, C, D and H) to select the GPIO peripheral for STM32F401xx devices. |
| GPIO_Pin | Specifies the pins to be toggled. |
- Return values
-
Writes data to the specified GPIO data port.
- Parameters
-
| GPIOx | where x can be (A..K) to select the GPIO peripheral for STM32F405xx/407xx and STM32F415xx/417xx devices x can be (A..I) to select the GPIO peripheral for STM32F42xxx/43xxx devices. x can be (A, B, C, D and H) to select the GPIO peripheral for STM32F401xx devices. |
| PortVal | specifies the value to be written to the port output data register. |
- Return values
-
Sets or clears the selected data port bit.
- Parameters
-
| GPIOx | where x can be (A..K) to select the GPIO peripheral for STM32F405xx/407xx and STM32F415xx/417xx devices x can be (A..I) to select the GPIO peripheral for STM32F42xxx/43xxx devices. x can be (A, B, C, D and H) to select the GPIO peripheral for STM32F401xx devices. |
| GPIO_Pin | specifies the port bit to be written. This parameter can be one of GPIO_Pin_x where x can be (0..15). |
| BitVal | specifies the value to be written to the selected bit. This parameter can be one of the BitAction enum values:
- Bit_RESET: to clear the port pin
- Bit_SET: to set the port pin
|
- Return values
-