RM0091 Contents
Doc ID 018940 Rev 2 5/748
8 General-purpose I/Os (GPIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.1 GPIO introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.2 GPIO main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.3 GPIO functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.3.1 General-purpose I/O (GPIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
8.3.2 I/O pin alternate function multiplexer and mapping . . . . . . . . . . . . . . . 123
8.3.3 I/O port control registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.3.4 I/O port data registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.3.5 I/O data bitwise handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.3.6 GPIO locking mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.3.7 I/O alternate function input/output . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.3.8 External interrupt/wakeup lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.3.9 Input configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.3.10 Output configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.3.11 Alternate function configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.3.12 Analog configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.3.13 Using the HSE or LSE oscillator pins as GPIOs . . . . . . . . . . . . . . . . . 128
8.3.14 Using the GPIO pins in the backup supply domain . . . . . . . . . . . . . . . 128
8.4 GPIO registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.4.1 GPIO port mode register (GPIOx_MODER) (x = A..D, F) . . . . . . . . . . 129
8.4.2 GPIO port output type register (GPIOx_OTYPER) (x = A..D, F) . . . . . 129
8.4.3 GPIO port output speed register (GPIOx_OSPEEDR) . . (x = A..D, F) 130
8.4.4 GPIO port pull-up/pull-down register (GPIOx_PUPDR) . . (x = A..D, F) 130
8.4.5 GPIO port input data register (GPIOx_IDR) (x = A..D, F) . . . . . . . . . . 131
8.4.6 GPIO port output data register (GPIOx_ODR) (x = A..D, F) . . . . . . . . 131
8.4.7 GPIO port bit set/reset register (GPIOx_BSRR) (x = A..D, F) . . . . . . . 132
8.4.8 GPIO port configuration lock register (GPIOx_LCKR) (x = A..B) . . . . . 133
8.4.9 GPIO alternate function low register (GPIOx_AFRL) (x = A..B) . . . . . 134
8.4.10 GPIO alternate function high register (GPIOx_AFRH) . . . . (x = A..B) 134
8.4.11 Port bit reset register (GPIOx_BRR) (x=A..D, F) . . . . . . . . . . . . . . . . . 135
8.4.12 GPIO register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
9 System configuration controller (SYSCFG) . . . . . . . . . . . . . . . . . . . . 137
9.1 SYSCFG registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
9.1.1 SYSCFG configuration register 1 (SYSCFG_CFGR1) . . . . . . . . . . . . 137
9.1.2 SYSCFG external interrupt configuration register 1
(SYSCFG_EXTICR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138