Embedded HandbookApps
All sections › Appendices
STM32F103, STM32F407 · level reference · 13 min read
Open in the interactive handbook

Appendix H. Peripheral × series × section: what exists where and where to read about it

The handbook sections are written for the F103 and F407, the register maps (appendices A…A18) cover 18 series. This table answers the question in between: does the selected series have the block you need, how many instances, and which sections write about it. Rows are 47 peripheral blocks, columns are series in the order of appendices A…A18.

The number in a cell is how many instances of the block the header of the series' representative chip declares (the same header its register map is built from) and the SVD of the same pack confirms: the instance address matches a peripheral base or lies inside its address block. “—” means the chip header does not declare the block. “?” means the header declares it but the SVD does not confirm it. Everything the header and the SVD disagree on is in the last table.

The matrix uses one chip per series, and smaller chips have less. The pack description lists no DAC or SDIO for the STM32F103C8, while the STM32F103RC has both: the F1 column answers “does the block exist in the series”, not “is it in your package”. For a specific chip, use the “MCU picker” calculator in the app: it takes its data from the same pack description.

Heat map: 47 peripheral blocks in rows, 18 STM32 series in columns; the darker the cell, the more instances of the block in the series' representative chip, empty means no block, orange means the header and the pack SVD disagree


Series and sources

Series Chip Header SVD Register map
F1 STM32F103 stm32f10x.h STM32F103xx.svd A
F4 STM32F407 stm32f407xx.h STM32F407.svd A2
F0 STM32F072 stm32f072xb.h STM32F072x.svd A3
F2 STM32F207 stm32f207xx.h STM32F207.svd A4
F3 STM32F303 stm32f303xc.h STM32F30x.svd A5
F7 STM32F746 stm32f746xx.h STM32F746.svd A6
H7 STM32H743 stm32h743xx.h STM32H743.svd A7
H5 STM32H563 stm32h563xx.h STM32H563.svd A8
G0 STM32G071 stm32g071xx.h STM32G071.svd A9
G4 STM32G474 stm32g474xx.h STM32G474.svd A10
C0 STM32C031 stm32c031xx.h STM32C031.svd A11
L0 STM32L053 stm32l053xx.h STM32L053.svd A12
L1 STM32L152 stm32l152xe.h STM32L152.svd A13
L4 STM32L476 stm32l476xx.h STM32L476.svd A14
L5 STM32L552 stm32l552xx.h STM32L552.svd A15
U5 STM32U575 stm32u575xx.h STM32U575.svd A16
WB STM32WB55 stm32wb55xx.h STM32WB55_CM4.svd A17
WL STM32WLE5 stm32wle5xx.h STM32WLE5_CM4.svd A18

Packs: STM32F1xx_DFP 2.4.1, STM32F4xx_DFP 2.17.1, STM32F0xx_DFP 2.1.1, STM32F2xx_DFP 2.11.0, STM32F3xx_DFP 2.2.2, STM32F7xx_DFP 2.16.0, STM32H7xx_DFP 3.1.1, STM32H5xx_DFP 1.3.0, STM32G0xx_DFP 1.5.0, STM32G4xx_DFP 1.6.0, STM32C0xx_DFP 1.0.0, STM32L0xx_DFP 2.3.0, STM32L1xx_DFP 1.4.1, STM32L4xx_DFP 2.7.0, STM32L5xx_DFP 1.4.0, STM32U5xx_DFP 2.2.1, STM32WBxx_DFP 1.4.0, STM32WLxx_DFP 1.2.0.


Matrix: F1, F4, F0, F2, F3, F7, H7, H5, G0

Block F1 F4 F0 F2 F3 F7 H7 H5 G0
GPIO 7 9 6 9 6 11 11 9 5
EXTI 1 1 1 1 1 1 1 1 1
DMA 2 2 1 2 2 2 2 — 1
BDMA — — — — — — 1 — —
MDMA — — — — — — 1 — —
GPDMA — — — — — — — 2 —
LPDMA — — — — — — — — —
DMAMUX — — — — — — 2 — 1
ADC 3 3 1 3 4 3 3 2 1
DAC 1 1 1 1 1 1 1 1 1
COMP — — 2 — 7 — 2 — 2
OPAMP — — — — 4 — 2 — —
TIM 14 14 9 14 10 14 14 14 9
LPTIM — — — — — 1 5 6 2
HRTIM — — — — — — 1 — —
RTC 1 1 1 1 1 1 1 1 1
IWDG 1 1 1 1 1 1 1 1 1
WWDG 1 1 1 1 1 1 1 1 1
USART / UART 5 6 4 6 5 8 8 12 4
LPUART — — — — — — 1 1 1
I2C 2 3 2 3 2 4 4 4 2
I3C — — — — — — — 1 —
SPI / I²S 3 3 2 3 3 6 6 6 2
SAI — — — — — 2 4 2 —
DFSDM / MDF / ADF — — — — — — 1 — —
CAN (bxCAN) 1 2 1 2 1 2 — — —
FDCAN — — — — — — 2 2 —
USB FS 1 — 1 — 1 — — 1 —
USB OTG — 2 — 2 — 2 2 — —
UCPD — — — — — — — 1 2
ETH ? 1 — 1 — 1 1 1 —
SDIO / SDMMC 1 1 — 1 — 1 2 2 —
FSMC / FMC 1 1 — 1 — 1 1 1 —
QUADSPI / OCTOSPI — — — — — 1 1 1 —
LTDC — — — — — 1 1 — —
DMA2D — — — — — 1 1 — —
DCMI / PSSI — 1 — 1 — 1 1 2 —
LCD — — — — — — — — —
TSC — — 1 — 1 — — — —
CEC ? — 1 — — 1 1 ? 1
CRC 1 1 1 1 1 1 1 1 1
RNG — 1 — 1 — 1 1 1 —
HASH — — — — — — — 1 —
AES / CRYP / SAES — — — — — — — — —
PKA — — — — — — — ? —
CORDIC — — — — — — — 1 —
FMAC — — — — — — — 1 —

Matrix: G4, C0, L0, L1, L4, L5, U5, WB, WL

Block G4 C0 L0 L1 L4 L5 U5 WB WL
GPIO 7 5 5 8 8 8 9 6 4
EXTI 1 1 1 1 1 1 1 1 1
DMA 2 1 1 2 2 2 — 2 2
BDMA — — — — — — — — —
MDMA — — — — — — — — —
GPDMA — — — — — — 1 — —
LPDMA — — — — — — 1 — —
DMAMUX 1 1 — — — 1 — 1 1
ADC 5 1 1 1 3 2 2 1 1
DAC 4 — 1 1 1 1 1 — 1
COMP 7 — 2 2 2 2 2 2 2
OPAMP 6 — — 2 2 2 2 — —
TIM 12 5 4 9 11 11 11 4 4
LPTIM 1 — 1 — 2 3 4 2 3
HRTIM 1 — — — — — — — —
RTC 1 1 1 1 1 1 1 1 1
IWDG 1 1 1 1 1 1 1 1 1
WWDG 1 1 1 1 1 1 1 1 1
USART / UART 5 2 2 5 5 5 5 1 2
LPUART 1 — 1 — 1 1 1 1 1
I2C 4 1 2 2 3 4 4 2 3
I3C — — — — — — — — —
SPI / I²S 4 1 2 3 3 3 3 2 2
SAI 1 — — — 2 2 2 1 —
DFSDM / MDF / ADF — — — — 1 1 2 — —
CAN (bxCAN) — — — — 1 — — — —
FDCAN 3 — — — — 1 1 — —
USB FS 1 — 1 1 — 1 — 1 —
USB OTG — — — — 1 — 1 — —
UCPD 1 — — — — 1 1 — —
ETH — — — — — — — — —
SDIO / SDMMC — — — — 1 1 2 — —
FSMC / FMC 1 — — — 1 1 1 — —
QUADSPI / OCTOSPI 1 — — — 1 1 2 1 —
LTDC — — — — — — — — —
DMA2D — — — — — — 1 — —
DCMI / PSSI — — — — — — 2 — —
LCD — — 1 1 1 — — 1 —
TSC — — 1 — 1 1 1 1 —
CEC — — — — — — — — —
CRC 1 1 1 1 1 1 1 1 1
RNG 1 — 1 — 1 1 1 1 1
HASH — — — — — 1 1 — —
AES / CRYP / SAES — — — — — — — 2 1
PKA — — — — — — — 1 1
CORDIC 1 — — — — — 1 — —
FMAC 1 — — — — — 1 — —

Where to read about it

Sections whose tags, id or title contain the block name. Bold is the section the register map links to. Sections about the C language, Linux, ESP32 and Flutter do not count: their UART and GPIO are not STM32 blocks.

Block Present in Sections
GPIO all 18 8, 22и
EXTI all 18 7, 12, 15б, 19н, 22и, 22к, 36н, 84, 93а, 97, 100, 100б, 103а, 198г, 198д
DMA F1, F4, F0, F2, F3, F7, H7, G0, G4, C0, L0, L1, L4, L5, WB, WL 5а, 9, 11б, 14, 15, 15в, 16б, 17а, 18, 18а, 18в, 22б, 22г, 22з, 36к, 38а, 41а, 99а, 99в, 103в, 106а, 198д, 198к, 198н, 198п, 198с
BDMA H7 —
MDMA H7 11б, 121а
GPDMA H5, U5 2д, 9а
LPDMA U5 9а, 10б
DMAMUX H7, G0, G4, C0, L5, WB, WL —
ADC all 18 14, 14а, 15а, 15б, 36н, 43а, 50а, 57е, 81, 96, 101, 103, 162, 165, 177, 178, 180, 196, 198к, 202
DAC F1, F4, F0, F2, F3, F7, H7, H5, G0, G4, L0, L1, L4, L5, U5, WL 15, 15в, 36к, 50а, 57е, 180, 198л, 198п
COMP F0, F3, H7, G0, G4, L0, L1, L4, L5, U5, WB, WL 15б, 44, 57б, 57е, 175
OPAMP F3, H7, G4, L1, L4, L5, U5 44, 57б, 164
TIM all 18 9, 12, 13, 22г, 29, 33а, 34, 46, 84, 197, 198д, 198к
LPTIM F7, H7, H5, G0, G4, L0, L4, L5, U5, WB, WL 46
HRTIM H7, G4 46
RTC all 18 12, 12а, 174, 198, 198а, 198м, 198н
IWDG all 18 0г, 12, 33а, 35в, 36б, 36в, 106г, 201, 203
WWDG all 18 0г, 12, 33а, 35в, 36б, 36в, 106г, 201, 203
USART / UART all 18 5а, 9, 16, 16б, 16в, 16г, 18д, 19к, 19л, 21а, 32, 36д, 36ж, 48д, 83, 95а, 99в, 100а, 103в, 106г, 198в, 198д, 198е, 198к, 198м, 198н, 198п, 198щ
LPUART H7, H5, G0, G4, L0, L4, L5, U5, WB, WL 10а, 16
I2C all 18 13в, 15б, 15в, 17, 17а, 18д, 22а, 22д, 22и, 36д, 36ж, 39в, 43б, 57и, 83, 95, 95а, 97, 98, 99, 99г, 100б, 101, 101а, 103, 103а, 103б, 104б, 198г, 198л, 198м, 198р, 198х
I3C H5 —
SPI / I²S all 18 17а, 18, 18а, 18в, 18г, 18д, 18е, 19н, 22г, 22е, 22з, 22к, 36д, 36ж, 41, 41в, 42а, 82, 83, 93, 93а, 95а, 99а, 104, 198л, 198с, 198ц
SAI F7, H7, H5, G4, L4, L5, U5, WB 18б
DFSDM / MDF / ADF H7, L4, L5, U5 18б
CAN (bxCAN) F1, F4, F0, F2, F3, F7, L4 0б, 19, 19а, 19б, 19в, 19г, 19д, 19е, 19ж, 19з, 19и, 19н, 36д, 36ж, 36л, 57в, 57г, 198е, 198р, 198с, 198т, 198у
FDCAN H7, H5, G4, L5, U5 19, 19а, 198е, 198с, 198т
USB FS F1, F0, F3, H5, G4, L0, L1, L5, WB 2ж, 19ж, 20, 20а, 20б, 20в, 20г, 20д, 36л, 104а, 198б, 198е, 198л, 198ф, 198ч, 198ш
USB OTG F4, F2, F7, H7, L4, U5 2ж, 19ж, 20, 20а, 20б, 20в, 20г, 20д, 36л, 104а, 198б, 198е, 198л, 198ф, 198ч, 198ш
UCPD H5, G0, G4, L5, U5 20б
ETH F4, F2, F7, H7, H5 37, 89, 105, 106а, 106б, 198з, 198и
SDIO / SDMMC F1, F4, F2, F7, H7, H5, L4, L5, U5 41, 41а, 198т
FSMC / FMC F1, F4, F2, F7, H7, H5, G4, L4, L5, U5 41б
QUADSPI / OCTOSPI F7, H7, H5, G4, L4, L5, U5, WB 2д, 41, 41в, 198м, 198ц
LTDC F7, H7 22а
DMA2D F7, H7, U5 22а
DCMI / PSSI F4, F2, F7, H7, H5, U5 22б, 121а
LCD L0, L1, L4, WB 22в, 22д
TSC F0, F3, L0, L4, L5, U5, WB 45
CEC F0, F7, H7, G0 —
CRC all 18 12, 12б, 36б, 43, 48, 93а, 96, 198к, 198с, 201а
RNG F4, F2, F7, H7, H5, G4, L0, L4, L5, U5, WB, WL 43, 43а
HASH H5, L5, U5 43
AES / CRYP / SAES WB, WL 43, 48г, 94
PKA WB, WL —
CORDIC H5, G4, U5 46а, 99г
FMAC H5, G4, U5 46б

Where the sources disagree

The header and the SVD live in the same pack but do not always describe the same die. The F1 header stm32f10x.h covers all F1 lines, the SVD covers the F103 line; an SVD sometimes describes a neighbouring chip of the series. The last column names the file of the same pack where the block was found at the same address. Such blocks are not counted in the matrix; a cell shows “?” when there are no confirmed instances at all.

Series Block Instance Address What disagrees Where found
F1 TIM TIM15 0x40014000 in the stm32f10x.h header, not in STM32F103xx.svd STM32F100xx.svd
F1 TIM TIM16 0x40014400 in the stm32f10x.h header, not in STM32F103xx.svd STM32F100xx.svd
F1 TIM TIM17 0x40014800 in the stm32f10x.h header, not in STM32F103xx.svd STM32F100xx.svd
F1 CAN (bxCAN) CAN2 0x40006800 in the stm32f10x.h header, not in STM32F103xx.svd STM32F105xx.svd
F1 ETH ETH 0x40028000 in the stm32f10x.h header, not in STM32F103xx.svd STM32F107xx.svd
F1 CEC CEC 0x40007800 in the stm32f10x.h header, not in STM32F103xx.svd STM32F100xx.svd
F4 GPIO GPIOJ 0x40022400 in STM32F407.svd (GPIOJ), not in the stm32f407xx.h header stm32f427xx.h
F4 GPIO GPIOK 0x40022800 in STM32F407.svd (GPIOK), not in the stm32f407xx.h header stm32f427xx.h
F4 USART / UART UART7 0x40007800 in STM32F407.svd (UART7), not in the stm32f407xx.h header stm32f413xx.h
F4 USART / UART UART8 0x40007C00 in STM32F407.svd (UART8), not in the stm32f407xx.h header stm32f413xx.h
F4 SPI / I²S SPI4 0x40013400 in STM32F407.svd (SPI4), not in the stm32f407xx.h header stm32f401xc.h
F4 SPI / I²S SPI5 0x40015000 in STM32F407.svd (SPI5), not in the stm32f407xx.h header stm32f411xe.h
F4 SPI / I²S SPI6 0x40015400 in STM32F407.svd (SPI6), not in the stm32f407xx.h header stm32f427xx.h
F4 SAI SAI1 0x40015800 in STM32F407.svd (SAI1), not in the stm32f407xx.h header stm32f413xx.h
F4 LTDC LTDC 0x40016800 in STM32F407.svd (LTDC), not in the stm32f407xx.h header stm32f429xx.h
F4 HASH HASH 0x50060400 in STM32F407.svd (HASH), not in the stm32f407xx.h header stm32f415xx.h
F4 AES / CRYP / SAES CRYP 0x50060000 in STM32F407.svd (CRYP), not in the stm32f407xx.h header stm32f415xx.h
F7 HASH HASH 0x50060400 in STM32F746.svd (HASH), not in the stm32f746xx.h header stm32f750xx.h
F7 AES / CRYP / SAES AES 0x50060000 in STM32F746.svd (CRYP), not in the stm32f746xx.h header stm32f730xx.h
H5 CEC CEC 0x40007000 in the stm32h563xx.h header, not in STM32H563.svd —
H5 PKA PKA 0x420C2000 in the stm32h563xx.h header, not in STM32H563.svd STM32H533.svd
G0 RNG RNG 0x40025000 in STM32G071.svd (RNG), not in the stm32g071xx.h header stm32g041xx.h
L0 GPIO GPIOE 0x50001000 in STM32L053.svd (GPIOE), not in the stm32l053xx.h header stm32l010xb.h
L0 TIM TIM3 0x40000400 in STM32L053.svd (TIM3), not in the stm32l053xx.h header stm32l071xx.h
L0 TIM TIM7 0x40001400 in STM32L053.svd (TIM7), not in the stm32l053xx.h header stm32l071xx.h
L0 USART / UART USART4 0x40004C00 in STM32L053.svd (USART4), not in the stm32l053xx.h header stm32l071xx.h
L0 USART / UART USART5 0x40005000 in STM32L053.svd (USART5), not in the stm32l053xx.h header stm32l071xx.h
L0 I2C I2C3 0x40007800 in STM32L053.svd (I2C3), not in the stm32l053xx.h header stm32l071xx.h
L1 SDIO / SDMMC SDIO 0x40012C00 in STM32L152.svd (SDIO), not in the stm32l152xe.h header stm32l151xd.h
L1 FSMC / FMC FSMC 0xA0000000 in STM32L152.svd (FSMC), not in the stm32l152xe.h header stm32l151xd.h
L1 AES / CRYP / SAES AES 0x50060000 in STM32L152.svd (AES), not in the stm32l152xe.h header stm32l162xc.h
L4 DCMI / PSSI DCMI 0x50050000 in STM32L476.svd (DCMI), not in the stm32l476xx.h header stm32l496xx.h
L4 AES / CRYP / SAES AES 0x50060000 in STM32L476.svd (AES), not in the stm32l476xx.h header stm32l422xx.h
U5 AES / CRYP / SAES SAES 0x420C0C00 in STM32U575.svd (SAES), not in the stm32u575xx.h header stm32u545xx.h
U5 PKA PKA 0x420C2000 in STM32U575.svd (PKA), not in the stm32u575xx.h header stm32u545xx.h
Open in the interactive handbook