General-purpose I/Os
GPIO
0x0
0x400
registers
MODER
MODER
GPIO port mode register
0x0
0x20
read-write
#if defined(__GPIO_A)
0xA8000000
#elif defined(__GPIO_B)
0x00000280
#else
0x00000000
#endif
MODER15
Port x configuration bits (y =
0..15)
30
2
MODE
Input
Input mode (reset state)
0
Output
General purpose output mode
1
Alternate
Alternate function mode
2
Analog
Analog mode
3
MODER14
Port x configuration bits (y =
0..15)
28
2
MODER13
Port x configuration bits (y =
0..15)
26
2
MODER12
Port x configuration bits (y =
0..15)
24
2
MODER11
Port x configuration bits (y =
0..15)
22
2
MODER10
Port x configuration bits (y =
0..15)
20
2
MODER9
Port x configuration bits (y =
0..15)
18
2
MODER8
Port x configuration bits (y =
0..15)
16
2
MODER7
Port x configuration bits (y =
0..15)
14
2
MODER6
Port x configuration bits (y =
0..15)
12
2
MODER5
Port x configuration bits (y =
0..15)
10
2
MODER4
Port x configuration bits (y =
0..15)
8
2
MODER3
Port x configuration bits (y =
0..15)
6
2
MODER2
Port x configuration bits (y =
0..15)
4
2
MODER1
Port x configuration bits (y =
0..15)
2
2
MODER0
Port x configuration bits (y =
0..15)
0
2
OTYPER
OTYPER
GPIO port output type register
0x4
0x20
read-write
0x00000000
OT15
Port x configuration bits (y =
0..15)
15
1
OT14
Port x configuration bits (y =
0..15)
14
1
OT13
Port x configuration bits (y =
0..15)
13
1
OT12
Port x configuration bits (y =
0..15)
12
1
OT11
Port x configuration bits (y =
0..15)
11
1
OT10
Port x configuration bits (y =
0..15)
10
1
OT9
Port x configuration bits (y =
0..15)
9
1
OT8
Port x configuration bits (y =
0..15)
8
1
OT7
Port x configuration bits (y =
0..15)
7
1
OT6
Port x configuration bits (y =
0..15)
6
1
OT5
Port x configuration bits (y =
0..15)
5
1
OT4
Port x configuration bits (y =
0..15)
4
1
OT3
Port x configuration bits (y =
0..15)
3
1
OT2
Port x configuration bits (y =
0..15)
2
1
OT1
Port x configuration bits (y =
0..15)
1
1
OT0
Port x configuration bits (y =
0..15)
0
1
OSPEEDR
OSPEEDR
GPIO port output speed
register
0x8
0x20
read-write
#if defined(__GPIO_A)
0x0C000000
#elif defined(__GPIO_B)
0x000000C0
#else
0x00000000
#endif
OSPEEDR15
Port x configuration bits (y =
0..15)
30
2
OSPEEDR14
Port x configuration bits (y =
0..15)
28
2
OSPEEDR13
Port x configuration bits (y =
0..15)
26
2
OSPEEDR12
Port x configuration bits (y =
0..15)
24
2
OSPEEDR11
Port x configuration bits (y =
0..15)
22
2
OSPEEDR10
Port x configuration bits (y =
0..15)
20
2
OSPEEDR9
Port x configuration bits (y =
0..15)
18
2
OSPEEDR8
Port x configuration bits (y =
0..15)
16
2
OSPEEDR7
Port x configuration bits (y =
0..15)
14
2
OSPEEDR6
Port x configuration bits (y =
0..15)
12
2
OSPEEDR5
Port x configuration bits (y =
0..15)
10
2
OSPEEDR4
Port x configuration bits (y =
0..15)
8
2
OSPEEDR3
Port x configuration bits (y =
0..15)
6
2
OSPEEDR2
Port x configuration bits (y =
0..15)
4
2
OSPEEDR1
Port x configuration bits (y =
0..15)
2
2
OSPEEDR0
Port x configuration bits (y =
0..15)
0
2
PUPDR
PUPDR
GPIO port pull-up/pull-down
register
0xC
0x20
read-write
#if defined(__GPIO_A)
0x64000000
#elif defined(__GPIO_B)
0x00000100
#else
0x00000000
#endif
PUPDR15
Port x configuration bits (y =
0..15)
30
2
PUPDR14
Port x configuration bits (y =
0..15)
28
2
PUPDR13
Port x configuration bits (y =
0..15)
26
2
PUPDR12
Port x configuration bits (y =
0..15)
24
2
PUPDR11
Port x configuration bits (y =
0..15)
22
2
PUPDR10
Port x configuration bits (y =
0..15)
20
2
PUPDR9
Port x configuration bits (y =
0..15)
18
2
PUPDR8
Port x configuration bits (y =
0..15)
16
2
PUPDR7
Port x configuration bits (y =
0..15)
14
2
PUPDR6
Port x configuration bits (y =
0..15)
12
2
PUPDR5
Port x configuration bits (y =
0..15)
10
2
PUPDR4
Port x configuration bits (y =
0..15)
8
2
PUPDR3
Port x configuration bits (y =
0..15)
6
2
PUPDR2
Port x configuration bits (y =
0..15)
4
2
PUPDR1
Port x configuration bits (y =
0..15)
2
2
PUPDR0
Port x configuration bits (y =
0..15)
0
2
IDR
IDR
GPIO port input data register
0x10
0x20
read-only
0x00000000
IDR15
Port input data (y =
0..15)
15
1
IDR14
Port input data (y =
0..15)
14
1
IDR13
Port input data (y =
0..15)
13
1
IDR12
Port input data (y =
0..15)
12
1
IDR11
Port input data (y =
0..15)
11
1
IDR10
Port input data (y =
0..15)
10
1
IDR9
Port input data (y =
0..15)
9
1
IDR8
Port input data (y =
0..15)
8
1
IDR7
Port input data (y =
0..15)
7
1
IDR6
Port input data (y =
0..15)
6
1
IDR5
Port input data (y =
0..15)
5
1
IDR4
Port input data (y =
0..15)
4
1
IDR3
Port input data (y =
0..15)
3
1
IDR2
Port input data (y =
0..15)
2
1
IDR1
Port input data (y =
0..15)
1
1
IDR0
Port input data (y =
0..15)
0
1
ODR
ODR
GPIO port output data register
0x14
0x20
read-write
0x00000000
ODR15
Port output data (y =
0..15)
15
1
ODR14
Port output data (y =
0..15)
14
1
ODR13
Port output data (y =
0..15)
13
1
ODR12
Port output data (y =
0..15)
12
1
ODR11
Port output data (y =
0..15)
11
1
ODR10
Port output data (y =
0..15)
10
1
ODR9
Port output data (y =
0..15)
9
1
ODR8
Port output data (y =
0..15)
8
1
ODR7
Port output data (y =
0..15)
7
1
ODR6
Port output data (y =
0..15)
6
1
ODR5
Port output data (y =
0..15)
5
1
ODR4
Port output data (y =
0..15)
4
1
ODR3
Port output data (y =
0..15)
3
1
ODR2
Port output data (y =
0..15)
2
1
ODR1
Port output data (y =
0..15)
1
1
ODR0
Port output data (y =
0..15)
0
1
BSRR
BSRR
GPIO port bit set/reset
register
0x18
0x20
write-only
0x00000000
BR15
Port x reset bit y (y =
0..15)
31
1
RESET
write
Reset
Resets the corresponding ODRx bit
1
BR14
Port x reset bit y (y =
0..15)
30
1
BR13
Port x reset bit y (y =
0..15)
29
1
BR12
Port x reset bit y (y =
0..15)
28
1
BR11
Port x reset bit y (y =
0..15)
27
1
BR10
Port x reset bit y (y =
0..15)
26
1
BR9
Port x reset bit y (y =
0..15)
25
1
BR8
Port x reset bit y (y =
0..15)
24
1
BR7
Port x reset bit y (y =
0..15)
23
1
BR6
Port x reset bit y (y =
0..15)
22
1
BR5
Port x reset bit y (y =
0..15)
21
1
BR4
Port x reset bit y (y =
0..15)
20
1
BR3
Port x reset bit y (y =
0..15)
19
1
BR2
Port x reset bit y (y =
0..15)
18
1
BR1
Port x reset bit y (y =
0..15)
17
1
BR0
Port x set bit y (y=
0..15)
16
1
BS15
Port x set bit y (y=
0..15)
15
1
SET
write
Set
Sets the corresponding ODRx bit
1
BS14
Port x set bit y (y=
0..15)
14
1
BS13
Port x set bit y (y=
0..15)
13
1
BS12
Port x set bit y (y=
0..15)
12
1
BS11
Port x set bit y (y=
0..15)
11
1
BS10
Port x set bit y (y=
0..15)
10
1
BS9
Port x set bit y (y=
0..15)
9
1
BS8
Port x set bit y (y=
0..15)
8
1
BS7
Port x set bit y (y=
0..15)
7
1
BS6
Port x set bit y (y=
0..15)
6
1
BS5
Port x set bit y (y=
0..15)
5
1
BS4
Port x set bit y (y=
0..15)
4
1
BS3
Port x set bit y (y=
0..15)
3
1
BS2
Port x set bit y (y=
0..15)
2
1
BS1
Port x set bit y (y=
0..15)
1
1
BS0
Port x set bit y (y=
0..15)
0
1
LCKR
LCKR
GPIO port configuration lock
register
0x1C
0x20
read-write
0x00000000
LCKK
Port x lock bit y (y=
0..15)
16
1
LCK15
Port x lock bit y (y=
0..15)
15
1
LCK14
Port x lock bit y (y=
0..15)
14
1
LCK13
Port x lock bit y (y=
0..15)
13
1
LCK12
Port x lock bit y (y=
0..15)
12
1
LCK11
Port x lock bit y (y=
0..15)
11
1
LCK10
Port x lock bit y (y=
0..15)
10
1
LCK9
Port x lock bit y (y=
0..15)
9
1
LCK8
Port x lock bit y (y=
0..15)
8
1
LCK7
Port x lock bit y (y=
0..15)
7
1
LCK6
Port x lock bit y (y=
0..15)
6
1
LCK5
Port x lock bit y (y=
0..15)
5
1
LCK4
Port x lock bit y (y=
0..15)
4
1
LCK3
Port x lock bit y (y=
0..15)
3
1
LCK2
Port x lock bit y (y=
0..15)
2
1
LCK1
Port x lock bit y (y=
0..15)
1
1
LCK0
Port x lock bit y (y=
0..15)
0
1
AFRL
AFRL
GPIO alternate function low
register
0x20
0x20
read-write
0x00000000
AFRL7
Alternate function selection for port x
bit y (y = 0..7)
28
4
AFRL6
Alternate function selection for port x
bit y (y = 0..7)
24
4
AFRL5
Alternate function selection for port x
bit y (y = 0..7)
20
4
AFRL4
Alternate function selection for port x
bit y (y = 0..7)
16
4
AFRL3
Alternate function selection for port x
bit y (y = 0..7)
12
4
AFRL2
Alternate function selection for port x
bit y (y = 0..7)
8
4
AFRL1
Alternate function selection for port x
bit y (y = 0..7)
4
4
AFRL0
Alternate function selection for port x
bit y (y = 0..7)
0
4
AFRH
AFRH
GPIO alternate function high
register
0x24
0x20
read-write
0x00000000
AFRH15
Alternate function selection for port x
bit y (y = 8..15)
28
4
AFRH14
Alternate function selection for port x
bit y (y = 8..15)
24
4
AFRH13
Alternate function selection for port x
bit y (y = 8..15)
20
4
AFRH12
Alternate function selection for port x
bit y (y = 8..15)
16
4
AFRH11
Alternate function selection for port x
bit y (y = 8..15)
12
4
AFRH10
Alternate function selection for port x
bit y (y = 8..15)
8
4
AFRH9
Alternate function selection for port x
bit y (y = 8..15)
4
4
AFRH8
Alternate function selection for port x
bit y (y = 8..15)
0
4
#undef __GPIO_A
#undef __GPIO_B