Nut/OS  5.0.5
API Reference
GPIO

GPIO driver modules. More...

Collaboration diagram for GPIO:

Data Structures

struct  GPIO_InitTypeDef
 GPIO Init structure definition. More...

Modules

 GPIO_Exported_Types
 GPIO_Exported_Functions
 GPIO_Exported_Constants
 Configuration_Mode_enumeration
 Output_type_enumeration
 Output_Maximum_frequency_enumeration
 Configuration_Pull-Up_Pull-Down_enumeration
 Bit_SET_and_Bit_RESET_enumeration
 GPIO_Private_TypesDefinitions
 GPIO_Private_Defines
 GPIO_Private_Macros
 GPIO_Private_Variables
 GPIO_Private_FunctionPrototypes
 GPIO_Private_Functions

Defines

#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 IS_GPIO_SPEED(SPEED)
#define IS_GPIO_PUPD(PUPD)
#define IS_GPIO_BIT_ACTION(ACTION)   (((ACTION) == Bit_RESET) || ((ACTION) == Bit_SET))
#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 IS_GPIO_SPEED(SPEED)
#define IS_GPIO_PUPD(PUPD)
#define IS_GPIO_BIT_ACTION(ACTION)   (((ACTION) == Bit_RESET) || ((ACTION) == Bit_SET))
#define IS_GPIO_ALL_PERIPH(PERIPH)

Enumerations

enum  GPIOMode_TypeDef {
  GPIO_Mode_AIN = 0x0, GPIO_Mode_IN_FLOATING = 0x04, GPIO_Mode_IPD = 0x28, GPIO_Mode_IPU = 0x48,
  GPIO_Mode_Out_OD = 0x14, GPIO_Mode_Out_PP = 0x10, GPIO_Mode_AF_OD = 0x1C, GPIO_Mode_AF_PP = 0x18,
  GPIO_Mode_IN = 0x00, GPIO_Mode_OUT = 0x01, GPIO_Mode_AF = 0x02, GPIO_Mode_AN = 0x03,
  GPIO_Mode_IN = 0x00, GPIO_Mode_OUT = 0x01, GPIO_Mode_AF = 0x02, GPIO_Mode_AN = 0x03,
  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_OType_PP = 0x00, GPIO_OType_OD = 0x01,
  GPIO_OType_PP = 0x00, GPIO_OType_OD = 0x01
}
 GPIO Output type enumeration. More...
enum  GPIOSpeed_TypeDef {
  GPIO_Speed_10MHz = 1, GPIO_Speed_2MHz, GPIO_Speed_50MHz, GPIO_Speed_2MHz = 0x00,
  GPIO_Speed_25MHz = 0x01, GPIO_Speed_50MHz = 0x02, GPIO_Speed_100MHz = 0x03, GPIO_Speed_2MHz = 0x00,
  GPIO_Speed_25MHz = 0x01, GPIO_Speed_50MHz = 0x02, GPIO_Speed_100MHz = 0x03, GPIO_Speed_400KHz = 0x00,
  GPIO_Speed_2MHz = 0x01, GPIO_Speed_10MHz = 0x02, GPIO_Speed_40MHz = 0x03
}
 GPIO Output Maximum frequency enumeration. More...
enum  GPIOPuPd_TypeDef {
  GPIO_PuPd_NOPULL = 0x00, GPIO_PuPd_UP = 0x01, GPIO_PuPd_DOWN = 0x02, GPIO_PuPd_NOPULL = 0x00,
  GPIO_PuPd_UP = 0x01, GPIO_PuPd_DOWN = 0x02, GPIO_PuPd_NOPULL = 0x00, GPIO_PuPd_UP = 0x01,
  GPIO_PuPd_DOWN = 0x02
}
 GPIO Configuration PullUp PullDown enumeration. More...
enum  BitAction {
  Bit_RESET = 0, Bit_SET, Bit_RESET = 0, Bit_SET,
  Bit_RESET = 0, Bit_SET
}
 GPIO Bit SET and Bit RESET enumeration. More...
enum  GPIOMode_TypeDef {
  GPIO_Mode_AIN = 0x0, GPIO_Mode_IN_FLOATING = 0x04, GPIO_Mode_IPD = 0x28, GPIO_Mode_IPU = 0x48,
  GPIO_Mode_Out_OD = 0x14, GPIO_Mode_Out_PP = 0x10, GPIO_Mode_AF_OD = 0x1C, GPIO_Mode_AF_PP = 0x18,
  GPIO_Mode_IN = 0x00, GPIO_Mode_OUT = 0x01, GPIO_Mode_AF = 0x02, GPIO_Mode_AN = 0x03,
  GPIO_Mode_IN = 0x00, GPIO_Mode_OUT = 0x01, GPIO_Mode_AF = 0x02, GPIO_Mode_AN = 0x03,
  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_OType_PP = 0x00, GPIO_OType_OD = 0x01,
  GPIO_OType_PP = 0x00, GPIO_OType_OD = 0x01
}
 GPIO Output type enumeration. More...
enum  GPIOSpeed_TypeDef {
  GPIO_Speed_10MHz = 1, GPIO_Speed_2MHz, GPIO_Speed_50MHz, GPIO_Speed_2MHz = 0x00,
  GPIO_Speed_25MHz = 0x01, GPIO_Speed_50MHz = 0x02, GPIO_Speed_100MHz = 0x03, GPIO_Speed_2MHz = 0x00,
  GPIO_Speed_25MHz = 0x01, GPIO_Speed_50MHz = 0x02, GPIO_Speed_100MHz = 0x03, GPIO_Speed_400KHz = 0x00,
  GPIO_Speed_2MHz = 0x01, GPIO_Speed_10MHz = 0x02, GPIO_Speed_40MHz = 0x03
}
 GPIO Output Maximum frequency enumeration. More...
enum  GPIOPuPd_TypeDef {
  GPIO_PuPd_NOPULL = 0x00, GPIO_PuPd_UP = 0x01, GPIO_PuPd_DOWN = 0x02, GPIO_PuPd_NOPULL = 0x00,
  GPIO_PuPd_UP = 0x01, GPIO_PuPd_DOWN = 0x02, GPIO_PuPd_NOPULL = 0x00, GPIO_PuPd_UP = 0x01,
  GPIO_PuPd_DOWN = 0x02
}
 GPIO Configuration PullUp PullDown enumeration. More...
enum  BitAction {
  Bit_RESET = 0, Bit_SET, Bit_RESET = 0, Bit_SET,
  Bit_RESET = 0, Bit_SET
}
 GPIO Bit SET and Bit RESET enumeration. More...

Functions

void GPIO_DeInit (GPIO_TypeDef *GPIOx)
void GPIO_Init (GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_InitStruct)
void GPIO_StructInit (GPIO_InitTypeDef *GPIO_InitStruct)
void GPIO_PinLockConfig (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
uint8_t GPIO_ReadInputDataBit (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
uint16_t GPIO_ReadInputData (GPIO_TypeDef *GPIOx)
uint8_t GPIO_ReadOutputDataBit (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
uint16_t GPIO_ReadOutputData (GPIO_TypeDef *GPIOx)
void GPIO_SetBits (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
void GPIO_ResetBits (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
void GPIO_WriteBit (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, BitAction BitVal)
void GPIO_Write (GPIO_TypeDef *GPIOx, uint16_t PortVal)
void GPIO_ToggleBits (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
void GPIO_PinAFConfig (GPIO_TypeDef *GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)
 Changes the mapping of the specified pin.

Detailed Description

GPIO driver modules.


Define 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))
#define IS_GPIO_MODE (   MODE)
Value:
(((MODE) == GPIO_Mode_IN)  || ((MODE) == GPIO_Mode_OUT) || \
                            ((MODE) == GPIO_Mode_AF)|| ((MODE) == GPIO_Mode_AN))
#define IS_GPIO_OTYPE (   OTYPE)    (((OTYPE) == GPIO_OType_PP) || ((OTYPE) == GPIO_OType_OD))
#define IS_GPIO_SPEED (   SPEED)
Value:
(((SPEED) == GPIO_Speed_2MHz) || ((SPEED) == GPIO_Speed_25MHz) || \
                              ((SPEED) == GPIO_Speed_50MHz)||  ((SPEED) == GPIO_Speed_100MHz))
#define IS_GPIO_PUPD (   PUPD)
Value:
(((PUPD) == GPIO_PuPd_NOPULL) || ((PUPD) == GPIO_PuPd_UP) || \
                            ((PUPD) == GPIO_PuPd_DOWN))
#define IS_GPIO_BIT_ACTION (   ACTION)    (((ACTION) == Bit_RESET) || ((ACTION) == Bit_SET))
#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))
#define IS_GPIO_MODE (   MODE)
Value:
(((MODE) == GPIO_Mode_IN)  || ((MODE) == GPIO_Mode_OUT) || \
                            ((MODE) == GPIO_Mode_AF)|| ((MODE) == GPIO_Mode_AN))
#define IS_GPIO_OTYPE (   OTYPE)    (((OTYPE) == GPIO_OType_PP) || ((OTYPE) == GPIO_OType_OD))
#define IS_GPIO_SPEED (   SPEED)
Value:
(((SPEED) == GPIO_Speed_2MHz) || ((SPEED) == GPIO_Speed_25MHz) || \
                              ((SPEED) == GPIO_Speed_50MHz)||  ((SPEED) == GPIO_Speed_100MHz))
#define IS_GPIO_PUPD (   PUPD)
Value:
(((PUPD) == GPIO_PuPd_NOPULL) || ((PUPD) == GPIO_PuPd_UP) || \
                            ((PUPD) == GPIO_PuPd_DOWN))
#define IS_GPIO_BIT_ACTION (   ACTION)    (((ACTION) == Bit_RESET) || ((ACTION) == Bit_SET))
#define IS_GPIO_ALL_PERIPH (   PERIPH)
Value:
(((PERIPH) == GPIOA) || \
                                    ((PERIPH) == GPIOB) || \
                                    ((PERIPH) == GPIOC) || \
                                    ((PERIPH) == GPIOD) || \
                                    ((PERIPH) == GPIOE) || \
                                    ((PERIPH) == GPIOH) || \
                                    ((PERIPH) == GPIOF) || \
                                    ((PERIPH) == GPIOG))

Enumeration Type Documentation

GPIO Configuration Mode enumeration.

Enumerator:
GPIO_Mode_AIN 
GPIO_Mode_IN_FLOATING 
GPIO_Mode_IPD 
GPIO_Mode_IPU 
GPIO_Mode_Out_OD 
GPIO_Mode_Out_PP 
GPIO_Mode_AF_OD 
GPIO_Mode_AF_PP 
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_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_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 type enumeration.

Enumerator:
GPIO_OType_PP 
GPIO_OType_OD 
GPIO_OType_PP 
GPIO_OType_OD 
GPIO_OType_PP 
GPIO_OType_OD 

GPIO Output Maximum frequency enumeration.

Enumerator:
GPIO_Speed_10MHz 
GPIO_Speed_2MHz 
GPIO_Speed_50MHz 
GPIO_Speed_2MHz 

Low speed

GPIO_Speed_25MHz 

Medium speed

GPIO_Speed_50MHz 

Fast speed

GPIO_Speed_100MHz 

High speed on 30 pF (80 MHz Output max speed on 15 pF)

GPIO_Speed_2MHz 

Low speed

GPIO_Speed_25MHz 

Medium speed

GPIO_Speed_50MHz 

Fast speed

GPIO_Speed_100MHz 

High speed on 30 pF (80 MHz Output max speed on 15 pF)

GPIO_Speed_400KHz 

Very Low Speed

GPIO_Speed_2MHz 

Low Speed

GPIO_Speed_10MHz 

Medium Speed

GPIO_Speed_40MHz 

High Speed

GPIO Configuration PullUp PullDown enumeration.

Enumerator:
GPIO_PuPd_NOPULL 
GPIO_PuPd_UP 
GPIO_PuPd_DOWN 
GPIO_PuPd_NOPULL 
GPIO_PuPd_UP 
GPIO_PuPd_DOWN 
GPIO_PuPd_NOPULL 
GPIO_PuPd_UP 
GPIO_PuPd_DOWN 
enum BitAction

GPIO Bit SET and Bit RESET enumeration.

Enumerator:
Bit_RESET 
Bit_SET 
Bit_RESET 
Bit_SET 
Bit_RESET 
Bit_SET 

GPIO Configuration Mode enumeration.

Enumerator:
GPIO_Mode_AIN 
GPIO_Mode_IN_FLOATING 
GPIO_Mode_IPD 
GPIO_Mode_IPU 
GPIO_Mode_Out_OD 
GPIO_Mode_Out_PP 
GPIO_Mode_AF_OD 
GPIO_Mode_AF_PP 
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_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_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 type enumeration.

Enumerator:
GPIO_OType_PP 
GPIO_OType_OD 
GPIO_OType_PP 
GPIO_OType_OD 
GPIO_OType_PP 
GPIO_OType_OD 

GPIO Output Maximum frequency enumeration.

Enumerator:
GPIO_Speed_10MHz 
GPIO_Speed_2MHz 
GPIO_Speed_50MHz 
GPIO_Speed_2MHz 

Low speed

GPIO_Speed_25MHz 

Medium speed

GPIO_Speed_50MHz 

Fast speed

GPIO_Speed_100MHz 

High speed on 30 pF (80 MHz Output max speed on 15 pF)

GPIO_Speed_2MHz 

Low speed

GPIO_Speed_25MHz 

Medium speed

GPIO_Speed_50MHz 

Fast speed

GPIO_Speed_100MHz 

High speed on 30 pF (80 MHz Output max speed on 15 pF)

GPIO_Speed_400KHz 

Very Low Speed

GPIO_Speed_2MHz 

Low Speed

GPIO_Speed_10MHz 

Medium Speed

GPIO_Speed_40MHz 

High Speed

GPIO Configuration PullUp PullDown enumeration.

Enumerator:
GPIO_PuPd_NOPULL 
GPIO_PuPd_UP 
GPIO_PuPd_DOWN 
GPIO_PuPd_NOPULL 
GPIO_PuPd_UP 
GPIO_PuPd_DOWN 
GPIO_PuPd_NOPULL 
GPIO_PuPd_UP 
GPIO_PuPd_DOWN 
enum BitAction

GPIO Bit SET and Bit RESET enumeration.

Enumerator:
Bit_RESET 
Bit_SET 
Bit_RESET 
Bit_SET 
Bit_RESET 
Bit_SET 

Function Documentation

void GPIO_DeInit ( GPIO_TypeDef GPIOx)
void GPIO_Init ( GPIO_TypeDef GPIOx,
GPIO_InitTypeDef GPIO_InitStruct 
)
void GPIO_StructInit ( GPIO_InitTypeDef GPIO_InitStruct)
void GPIO_PinLockConfig ( GPIO_TypeDef GPIOx,
uint16_t  GPIO_Pin 
)
uint8_t GPIO_ReadInputDataBit ( GPIO_TypeDef GPIOx,
uint16_t  GPIO_Pin 
)
uint16_t GPIO_ReadInputData ( GPIO_TypeDef GPIOx)
uint8_t GPIO_ReadOutputDataBit ( GPIO_TypeDef GPIOx,
uint16_t  GPIO_Pin 
)
uint16_t GPIO_ReadOutputData ( GPIO_TypeDef GPIOx)
void GPIO_SetBits ( GPIO_TypeDef GPIOx,
uint16_t  GPIO_Pin 
)
void GPIO_ResetBits ( GPIO_TypeDef GPIOx,
uint16_t  GPIO_Pin 
)
void GPIO_WriteBit ( GPIO_TypeDef GPIOx,
uint16_t  GPIO_Pin,
BitAction  BitVal 
)
void GPIO_Write ( GPIO_TypeDef GPIOx,
uint16_t  PortVal 
)
void GPIO_ToggleBits ( GPIO_TypeDef GPIOx,
uint16_t  GPIO_Pin 
)
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..I) to select the GPIO peripheral.
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_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_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_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_EVENTOUT: Connect EVENTOUT pins to AF15
Return values:
None

References GPIO_TypeDef::AFR, IS_GPIO_AF, IS_GPIO_ALL_PERIPH, IS_GPIO_PIN_SOURCE, and NUTASSERT.

Referenced by Stm32CanHw1Init(), Stm32CanHw2Init(), Stm32I2cBus1Init(), and Stm32I2cBus2Init().