CARME-M4 BSP  V1.5

GPIO driver modules. More...

+ Collaboration diagram for GPIO:

Modules

 GPIO_Exported_Constants
 
 GPIO_Private_Functions
 

Data Structures

struct  GPIO_InitTypeDef
 GPIO Init structure definition. More...
 

Macros

#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))
 

Enumerations

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.
 

Functions

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...
 

Detailed Description

GPIO driver modules.

Macro Definition Documentation

#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))

Definition at line 50 of file stm32f4xx_gpio.h.

#define IS_GPIO_MODE (   MODE)
Value:
(((MODE) == GPIO_Mode_IN) || ((MODE) == GPIO_Mode_OUT) || \
((MODE) == GPIO_Mode_AF)|| ((MODE) == GPIO_Mode_AN))

Definition at line 72 of file stm32f4xx_gpio.h.

#define IS_GPIO_PUPD (   PUPD)
Value:
(((PUPD) == GPIO_PuPd_NOPULL) || ((PUPD) == GPIO_PuPd_UP) || \
((PUPD) == GPIO_PuPd_DOWN))

Definition at line 115 of file stm32f4xx_gpio.h.

#define IS_GPIO_SPEED (   SPEED)
Value:

Definition at line 103 of file stm32f4xx_gpio.h.

Enumeration Type Documentation

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

Definition at line 65 of file stm32f4xx_gpio.h.

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

Definition at line 89 of file stm32f4xx_gpio.h.

Function Documentation

void GPIO_DeInit ( GPIO_TypeDef *  GPIOx)

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
GPIOxwhere 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
None

Definition at line 127 of file stm32f4xx_gpio.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void GPIO_Init ( GPIO_TypeDef *  GPIOx,
GPIO_InitTypeDef GPIO_InitStruct 
)

Initializes the GPIOx peripheral according to the specified parameters in the GPIO_InitStruct.

Parameters
GPIOxwhere 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_InitStructpointer to a GPIO_InitTypeDef structure that contains the configuration information for the specified GPIO peripheral.
Return values
None
Examples:
gpio_stdperiph.c.

Definition at line 202 of file stm32f4xx_gpio.c.

+ Here is the caller graph for this function:

void GPIO_PinAFConfig ( GPIO_TypeDef *  GPIOx,
uint16_t  GPIO_PinSource,
uint8_t  GPIO_AF 
)

Changes the mapping of the specified pin.

Parameters
GPIOxwhere 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_PinSourcespecifies the pin for the Alternate function. This parameter can be GPIO_PinSourcex where x can be (0..15).
GPIO_AFSelectionselects 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
None

Definition at line 579 of file stm32f4xx_gpio.c.

+ Here is the caller graph for this function:

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
GPIOxwhere 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_Pinspecifies the port bit to be locked. This parameter can be any combination of GPIO_Pin_x where x can be (0..15).
Return values
None

Definition at line 277 of file stm32f4xx_gpio.c.

uint16_t GPIO_ReadInputData ( GPIO_TypeDef *  GPIOx)

Reads the specified GPIO input data port.

Parameters
GPIOxwhere 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
GPIOinput data port value.

Definition at line 349 of file stm32f4xx_gpio.c.

uint8_t GPIO_ReadInputDataBit ( GPIO_TypeDef *  GPIOx,
uint16_t  GPIO_Pin 
)

Reads the specified input port pin.

Parameters
GPIOxwhere 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_Pinspecifies the port bit to read. This parameter can be GPIO_Pin_x where x can be (0..15).
Return values
Theinput port pin value.

Definition at line 323 of file stm32f4xx_gpio.c.

+ Here is the caller graph for this function:

uint16_t GPIO_ReadOutputData ( GPIO_TypeDef *  GPIOx)

Reads the specified GPIO output data port.

Parameters
GPIOxwhere 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
GPIOoutput data port value.

Definition at line 392 of file stm32f4xx_gpio.c.

uint8_t GPIO_ReadOutputDataBit ( GPIO_TypeDef *  GPIOx,
uint16_t  GPIO_Pin 
)

Reads the specified output data port bit.

Parameters
GPIOxwhere 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_Pinspecifies the port bit to read. This parameter can be GPIO_Pin_x where x can be (0..15).
Return values
Theoutput port pin value.

Definition at line 366 of file stm32f4xx_gpio.c.

+ Here is the caller graph for this function:

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
GPIOxwhere 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_Pinspecifies the port bits to be written. This parameter can be any combination of GPIO_Pin_x where x can be (0..15).
Return values
None

Definition at line 433 of file stm32f4xx_gpio.c.

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
GPIOxwhere 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_Pinspecifies the port bits to be written. This parameter can be any combination of GPIO_Pin_x where x can be (0..15).
Return values
None

Definition at line 412 of file stm32f4xx_gpio.c.

void GPIO_StructInit ( GPIO_InitTypeDef GPIO_InitStruct)

Fills each GPIO_InitStruct member with its default value.

Parameters
GPIO_InitStruct: pointer to a GPIO_InitTypeDef structure which will be initialized.
Return values
None
Examples:
gpio_stdperiph.c.

Definition at line 254 of file stm32f4xx_gpio.c.

+ Here is the caller graph for this function:

void GPIO_ToggleBits ( GPIO_TypeDef *  GPIOx,
uint16_t  GPIO_Pin 
)

Toggles the specified GPIO pins..

Parameters
GPIOxwhere 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_PinSpecifies the pins to be toggled.
Return values
None

Definition at line 496 of file stm32f4xx_gpio.c.

void GPIO_Write ( GPIO_TypeDef *  GPIOx,
uint16_t  PortVal 
)

Writes data to the specified GPIO data port.

Parameters
GPIOxwhere 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.
PortValspecifies the value to be written to the port output data register.
Return values
None

Definition at line 480 of file stm32f4xx_gpio.c.

void GPIO_WriteBit ( GPIO_TypeDef *  GPIOx,
uint16_t  GPIO_Pin,
BitAction  BitVal 
)

Sets or clears the selected data port bit.

Parameters
GPIOxwhere 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_Pinspecifies the port bit to be written. This parameter can be one of GPIO_Pin_x where x can be (0..15).
BitValspecifies 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
None
Examples:
gpio_stdperiph.c.

Definition at line 455 of file stm32f4xx_gpio.c.

+ Here is the caller graph for this function: