Регистры SYSCFG STM32F0
Регистры SYSCFG STM32F0: какая память видна с адреса 0, переназначение каналов DMA, режим Fast-mode Plus выводов I2C, порт для каждой линии EXTI и подключение аварийных сигналов к входу останова таймеров.
SYSCFG STM32F0 объединяет то, что у STM32F1 было в AFIO, и настройки, которых там не было. MEM_MODE переносит на адрес 0x0000 0000 флеш-память, системную память с загрузчиком или SRAM; у Cortex-M0 нет регистра VTOR, поэтому программа, работающая не с начала флеш-памяти (за загрузчиком), копирует таблицу векторов в начало SRAM и переключает MEM_MODE на SRAM (RM0091, раздел 9.1.1).
Регистры EXTICR выбирают порт для линий EXTI0–EXTI15. У STM32F03x, F04x, F05x и F07x биты *_DMA_RMP переносят запросы DMA периферии на другой канал, если стандартный уже занят; у STM32F09x вместо них есть регистр DMA_CSELR.
Регистр CFGR2 подключает к входу аварийного останова TIM1, TIM15, TIM16 и TIM17 сигналы ошибки чётности SRAM, LOCKUP ядра и PVD. Каждое подключение снимается только сбросом микроконтроллера. SYSCFG тактируется битом SYSCFGCOMPEN в RCC_APB2ENR.
| Экземпляр | Базовый адрес | Есть у |
|---|---|---|
| SYSCFG | 0x4001 0000 | всех |
Регистры блока
| Регистр | Смещение | Назначение | После сброса |
|---|---|---|---|
| SYSCFG_CFGR1 | 0x00 | Отображение памяти, Fast-mode Plus и переназначения | 0x0000 000X (X — память, выбранная режимом загрузки) |
| SYSCFG_EXTICR1 | 0x08 | Источники линий EXTI0–EXTI3 | 0x0000 |
| SYSCFG_EXTICR2 | 0x0C | Источники линий EXTI4–EXTI7 | 0x0000 |
| SYSCFG_EXTICR3 | 0x10 | Источники линий EXTI8–EXTI11 | 0x0000 |
| SYSCFG_EXTICR4 | 0x14 | Источники линий EXTI12–EXTI15 | 0x0000 |
| SYSCFG_CFGR2 | 0x18 | Сигналы аварийного останова таймеров и чётность SRAM | 0x0000 (при системном сбросе) |
Конструктор значения
Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.
Значение: 0x00000000
0000 0000 0000 0000 0000 0000 0000 0000
SYSCFG->CFGR1 = 0x00000000;SYSCFG_CFGR1 — отображение памяти, Fast-mode Plus и переназначения
Смещение 0x00, адрес 0x4001 0000, 32 бит, после сброса 0x0000 000X (X — память, выбранная режимом загрузки). В коде: SYSCFG->CFGR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | TIM3_DMA_RMP | TIM2_DMA_RMP | TIM1_DMA_RMP | I2C1_DMA_RMP | USART3_DMA_RMP | USART2_DMA_RMP | SPI2_DMA_RMP | I2C_FMP_PA10 | I2C_FMP_PA9 | I2C_FMP_I2C2 | I2C_FMP_I2C1 | I2C_FMP_PB9 | I2C_FMP_PB8 | I2C_FMP_PB7 | I2C_FMP_PB6 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | TIM17_DMA_RMP2 | TIM16_DMA_RMP2 | TIM17_DMA_RMP | TIM16_DMA_RMP | USART1RX_DMA_RMP | USART1TX_DMA_RMP | ADC_DMA_RMP | IR_MOD | — | PA11_PA12_RMP | — | MEM_MODE | |||
- TIM3_DMA_RMP (бит 30) — Переназначение запросов DMA TIM3 на другой канал (только у STM32F071, STM32F072, STM32F078).
- TIM2_DMA_RMP (бит 29) — Переназначение запросов DMA TIM2 на другой канал (только у STM32F071, STM32F072, STM32F078).
- TIM1_DMA_RMP (бит 28) — Переназначение запросов DMA TIM1 на другой канал (только у STM32F071, STM32F072, STM32F078).
- I2C1_DMA_RMP (бит 27) — Переназначение запросов DMA I2C1 на другой канал (только у STM32F071, STM32F072, STM32F078).
- USART3_DMA_RMP (бит 26) — Переназначение запросов DMA USART3 на другой канал (только у STM32F071, STM32F072, STM32F078).
- USART2_DMA_RMP (бит 25) — Переназначение запросов DMA USART2 на другой канал (только у STM32F071, STM32F072, STM32F078).
- SPI2_DMA_RMP (бит 24) — Переназначение запросов DMA SPI2 на другой канал (только у STM32F071, STM32F072, STM32F078).
- I2C_FMP_PA10 (бит 23) — Режим Fast-mode Plus (ток 20 мА) на выводе PA10 (только у STM32F031, STM32F038, STM32F042, STM32F048, STM32F091, STM32F098).
- I2C_FMP_PA9 (бит 22) — Режим Fast-mode Plus (ток 20 мА) на выводе PA9 (только у STM32F031, STM32F038, STM32F042, STM32F048, STM32F091, STM32F098).
- I2C_FMP_I2C2 (бит 21) — Режим Fast-mode Plus на выводах I2C2 (только у STM32F042, STM32F048, STM32F071, STM32F072, STM32F078, STM32F091, STM32F098).
- I2C_FMP_I2C1 (бит 20) — Режим Fast-mode Plus на выводах I2C1 (только у STM32F031, STM32F038, STM32F042, STM32F048, STM32F071, STM32F072, STM32F078, STM32F091, STM32F098).
- I2C_FMP_PB9 (бит 19) — Режим Fast-mode Plus (ток 20 мА) на выводе PB9.
- I2C_FMP_PB8 (бит 18) — Режим Fast-mode Plus (ток 20 мА) на выводе PB8.
- I2C_FMP_PB7 (бит 17) — Режим Fast-mode Plus (ток 20 мА) на выводе PB7.
- I2C_FMP_PB6 (бит 16) — Режим Fast-mode Plus (ток 20 мА) на выводе PB6.
- TIM17_DMA_RMP2 (бит 14) — Переназначение запросов DMA TIM17 на другой канал (второй вариант) (только у STM32F071, STM32F072, STM32F078).
- TIM16_DMA_RMP2 (бит 13) — Переназначение запросов DMA TIM16 на другой канал (второй вариант) (только у STM32F071, STM32F072, STM32F078).
- TIM17_DMA_RMP (бит 12) — Переназначение запросов DMA TIM17 на другой канал (только у STM32F031, STM32F038, STM32F042, STM32F048, STM32F051, STM32F058, STM32F071, STM32F072, STM32F078).
- TIM16_DMA_RMP (бит 11) — Переназначение запросов DMA TIM16 на другой канал (только у STM32F031, STM32F038, STM32F042, STM32F048, STM32F051, STM32F058, STM32F071, STM32F072, STM32F078).
- USART1RX_DMA_RMP (бит 10) — Переназначение запросов DMA USART1 RX на другой канал (только у STM32F031, STM32F038, STM32F042, STM32F048, STM32F051, STM32F058, STM32F071, STM32F072, STM32F078).
- USART1TX_DMA_RMP (бит 9) — Переназначение запросов DMA USART1 TX на другой канал (только у STM32F031, STM32F038, STM32F042, STM32F048, STM32F051, STM32F058, STM32F071, STM32F072, STM32F078).
- ADC_DMA_RMP (бит 8) — Переназначение запросов DMA ADC на другой канал (только у STM32F031, STM32F038, STM32F042, STM32F048, STM32F051, STM32F058, STM32F071, STM32F072, STM32F078).
- IR_MOD (биты 7:6) — Источник огибающей для модуляции выхода IR_OUT (только у STM32F091, STM32F098).
- PA11_PA12_RMP (бит 4) — PA11 и PA12 вместо PA9 и PA10 в корпусах на 20 и 28 выводов (только у STM32F042, STM32F048).
- MEM_MODE (биты 1:0) — Память по адресу 0x0000 0000: флеш, системная память или SRAM.
SYSCFG_EXTICR1 — источники линий EXTI0–EXTI3
Смещение 0x08, адрес 0x4001 0008, 32 бит, после сброса 0x0000. В коде: SYSCFG->EXTICR[0].
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EXTI3 | EXTI2 | EXTI1 | EXTI0 | ||||||||||||
- EXTI3 (биты 15:12) — Порт, вывод 3 которого подключён к линии EXTI3.
EXTI3 Значение Макрос CMSIS 0000 Порт A (PA3) SYSCFG_EXTICR1_EXTI3_PA 0001 Порт B (PB3) SYSCFG_EXTICR1_EXTI3_PB 0010 Порт C (PC3) SYSCFG_EXTICR1_EXTI3_PC 0011 Порт D (PD3) SYSCFG_EXTICR1_EXTI3_PD 0100 Порт E (PE3) (только у STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR1_EXTI3_PE 0101 Порт F (PF3) SYSCFG_EXTICR1_EXTI3_PF - EXTI2 (биты 11:8) — Порт, вывод 2 которого подключён к линии EXTI2.
EXTI2 Значение Макрос CMSIS 0000 Порт A (PA2) SYSCFG_EXTICR1_EXTI2_PA 0001 Порт B (PB2) SYSCFG_EXTICR1_EXTI2_PB 0010 Порт C (PC2) SYSCFG_EXTICR1_EXTI2_PC 0011 Порт D (PD2) SYSCFG_EXTICR1_EXTI2_PD 0100 Порт E (PE2) (только у STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR1_EXTI2_PE 0101 Порт F (PF2) SYSCFG_EXTICR1_EXTI2_PF - EXTI1 (биты 7:4) — Порт, вывод 1 которого подключён к линии EXTI1.
EXTI1 Значение Макрос CMSIS 0000 Порт A (PA1) SYSCFG_EXTICR1_EXTI1_PA 0001 Порт B (PB1) SYSCFG_EXTICR1_EXTI1_PB 0010 Порт C (PC1) SYSCFG_EXTICR1_EXTI1_PC 0011 Порт D (PD1) SYSCFG_EXTICR1_EXTI1_PD 0100 Порт E (PE1) (только у STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR1_EXTI1_PE 0101 Порт F (PF1) SYSCFG_EXTICR1_EXTI1_PF - EXTI0 (биты 3:0) — Порт, вывод 0 которого подключён к линии EXTI0.
EXTI0 Значение Макрос CMSIS 0000 Порт A (PA0) SYSCFG_EXTICR1_EXTI0_PA 0001 Порт B (PB0) SYSCFG_EXTICR1_EXTI0_PB 0010 Порт C (PC0) SYSCFG_EXTICR1_EXTI0_PC 0011 Порт D (PD0) SYSCFG_EXTICR1_EXTI0_PD 0100 Порт E (PE0) (только у STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR1_EXTI0_PE 0101 Порт F (PF0) SYSCFG_EXTICR1_EXTI0_PF
SYSCFG_EXTICR2 — источники линий EXTI4–EXTI7
Смещение 0x0C, адрес 0x4001 000C, 32 бит, после сброса 0x0000. В коде: SYSCFG->EXTICR[1].
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EXTI7 | EXTI6 | EXTI5 | EXTI4 | ||||||||||||
- EXTI7 (биты 15:12) — Порт, вывод 7 которого подключён к линии EXTI7.
EXTI7 Значение Макрос CMSIS 0000 Порт A (PA7) SYSCFG_EXTICR2_EXTI7_PA 0001 Порт B (PB7) SYSCFG_EXTICR2_EXTI7_PB 0010 Порт C (PC7) SYSCFG_EXTICR2_EXTI7_PC 0011 Порт D (PD7) SYSCFG_EXTICR2_EXTI7_PD 0100 Порт E (PE7) (только у STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR2_EXTI7_PE 0101 Порт F (PF7) SYSCFG_EXTICR2_EXTI7_PF - EXTI6 (биты 11:8) — Порт, вывод 6 которого подключён к линии EXTI6.
EXTI6 Значение Макрос CMSIS 0000 Порт A (PA6) SYSCFG_EXTICR2_EXTI6_PA 0001 Порт B (PB6) SYSCFG_EXTICR2_EXTI6_PB 0010 Порт C (PC6) SYSCFG_EXTICR2_EXTI6_PC 0011 Порт D (PD6) SYSCFG_EXTICR2_EXTI6_PD 0100 Порт E (PE6) (только у STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR2_EXTI6_PE 0101 Порт F (PF6) SYSCFG_EXTICR2_EXTI6_PF - EXTI5 (биты 7:4) — Порт, вывод 5 которого подключён к линии EXTI5.
EXTI5 Значение Макрос CMSIS 0000 Порт A (PA5) SYSCFG_EXTICR2_EXTI5_PA 0001 Порт B (PB5) SYSCFG_EXTICR2_EXTI5_PB 0010 Порт C (PC5) SYSCFG_EXTICR2_EXTI5_PC 0011 Порт D (PD5) SYSCFG_EXTICR2_EXTI5_PD 0100 Порт E (PE5) (только у STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR2_EXTI5_PE 0101 Порт F (PF5) SYSCFG_EXTICR2_EXTI5_PF - EXTI4 (биты 3:0) — Порт, вывод 4 которого подключён к линии EXTI4.
EXTI4 Значение Макрос CMSIS 0000 Порт A (PA4) SYSCFG_EXTICR2_EXTI4_PA 0001 Порт B (PB4) SYSCFG_EXTICR2_EXTI4_PB 0010 Порт C (PC4) SYSCFG_EXTICR2_EXTI4_PC 0011 Порт D (PD4) SYSCFG_EXTICR2_EXTI4_PD 0100 Порт E (PE4) (только у STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR2_EXTI4_PE 0101 Порт F (PF4) SYSCFG_EXTICR2_EXTI4_PF
SYSCFG_EXTICR3 — источники линий EXTI8–EXTI11
Смещение 0x10, адрес 0x4001 0010, 32 бит, после сброса 0x0000. В коде: SYSCFG->EXTICR[2].
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EXTI11 | EXTI10 | EXTI9 | EXTI8 | ||||||||||||
- EXTI11 (биты 15:12) — Порт, вывод 11 которого подключён к линии EXTI11.
EXTI11 Значение Макрос CMSIS 0000 Порт A (PA11) SYSCFG_EXTICR3_EXTI11_PA 0001 Порт B (PB11) SYSCFG_EXTICR3_EXTI11_PB 0010 Порт C (PC11) SYSCFG_EXTICR3_EXTI11_PC 0011 Порт D (PD11) SYSCFG_EXTICR3_EXTI11_PD 0100 Порт E (PE11) (только у STM32F042, STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR3_EXTI11_PE 0101 Порт F (PF11) (только у STM32F031, STM32F038, STM32F051, STM32F058) SYSCFG_EXTICR3_EXTI11_PF - EXTI10 (биты 11:8) — Порт, вывод 10 которого подключён к линии EXTI10.
EXTI10 Значение Макрос CMSIS 0000 Порт A (PA10) SYSCFG_EXTICR3_EXTI10_PA 0001 Порт B (PB10) SYSCFG_EXTICR3_EXTI10_PB 0010 Порт C (PC10) SYSCFG_EXTICR3_EXTI10_PC 0011 Порт D (PD10) SYSCFG_EXTICR3_EXTI10_PD 0100 Порт E (PE10) (только у STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR3_EXTI10_PE 0101 Порт F (PF10) SYSCFG_EXTICR3_EXTI10_PF - EXTI9 (биты 7:4) — Порт, вывод 9 которого подключён к линии EXTI9.
EXTI9 Значение Макрос CMSIS 0000 Порт A (PA9) SYSCFG_EXTICR3_EXTI9_PA 0001 Порт B (PB9) SYSCFG_EXTICR3_EXTI9_PB 0010 Порт C (PC9) SYSCFG_EXTICR3_EXTI9_PC 0011 Порт D (PD9) SYSCFG_EXTICR3_EXTI9_PD 0100 Порт E (PE9) (только у STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR3_EXTI9_PE 0101 Порт F (PF9) SYSCFG_EXTICR3_EXTI9_PF - EXTI8 (биты 3:0) — Порт, вывод 8 которого подключён к линии EXTI8.
EXTI8 Значение Макрос CMSIS 0000 Порт A (PA8) SYSCFG_EXTICR3_EXTI8_PA 0001 Порт B (PB8) SYSCFG_EXTICR3_EXTI8_PB 0010 Порт C (PC8) SYSCFG_EXTICR3_EXTI8_PC 0011 Порт D (PD8) SYSCFG_EXTICR3_EXTI8_PD 0100 Порт E (PE8) (только у STM32F042, STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR3_EXTI8_PE 0101 Порт F (PF8) (только у STM32F031, STM32F038, STM32F051, STM32F058) SYSCFG_EXTICR3_EXTI8_PF
SYSCFG_EXTICR4 — источники линий EXTI12–EXTI15
Смещение 0x14, адрес 0x4001 0014, 32 бит, после сброса 0x0000. В коде: SYSCFG->EXTICR[3].
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EXTI15 | EXTI14 | EXTI13 | EXTI12 | ||||||||||||
- EXTI15 (биты 15:12) — Порт, вывод 15 которого подключён к линии EXTI15.
EXTI15 Значение Макрос CMSIS 0000 Порт A (PA15) SYSCFG_EXTICR4_EXTI15_PA 0001 Порт B (PB15) SYSCFG_EXTICR4_EXTI15_PB 0010 Порт C (PC15) SYSCFG_EXTICR4_EXTI15_PC 0011 Порт D (PD15) SYSCFG_EXTICR4_EXTI15_PD 0100 Порт E (PE15) (только у STM32F042, STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR4_EXTI15_PE 0101 Порт F (PF15) (только у STM32F031, STM32F038, STM32F051, STM32F058) SYSCFG_EXTICR4_EXTI15_PF - EXTI14 (биты 11:8) — Порт, вывод 14 которого подключён к линии EXTI14.
EXTI14 Значение Макрос CMSIS 0000 Порт A (PA14) SYSCFG_EXTICR4_EXTI14_PA 0001 Порт B (PB14) SYSCFG_EXTICR4_EXTI14_PB 0010 Порт C (PC14) SYSCFG_EXTICR4_EXTI14_PC 0011 Порт D (PD14) SYSCFG_EXTICR4_EXTI14_PD 0100 Порт E (PE14) (только у STM32F042, STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR4_EXTI14_PE 0101 Порт F (PF14) (только у STM32F031, STM32F038, STM32F051, STM32F058) SYSCFG_EXTICR4_EXTI14_PF - EXTI13 (биты 7:4) — Порт, вывод 13 которого подключён к линии EXTI13.
EXTI13 Значение Макрос CMSIS 0000 Порт A (PA13) SYSCFG_EXTICR4_EXTI13_PA 0001 Порт B (PB13) SYSCFG_EXTICR4_EXTI13_PB 0010 Порт C (PC13) SYSCFG_EXTICR4_EXTI13_PC 0011 Порт D (PD13) SYSCFG_EXTICR4_EXTI13_PD 0100 Порт E (PE13) (только у STM32F042, STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR4_EXTI13_PE 0101 Порт F (PF13) (только у STM32F031, STM32F038, STM32F051, STM32F058) SYSCFG_EXTICR4_EXTI13_PF - EXTI12 (биты 3:0) — Порт, вывод 12 которого подключён к линии EXTI12.
EXTI12 Значение Макрос CMSIS 0000 Порт A (PA12) SYSCFG_EXTICR4_EXTI12_PA 0001 Порт B (PB12) SYSCFG_EXTICR4_EXTI12_PB 0010 Порт C (PC12) SYSCFG_EXTICR4_EXTI12_PC 0011 Порт D (PD12) SYSCFG_EXTICR4_EXTI12_PD 0100 Порт E (PE12) (только у STM32F042, STM32F071, STM32F072, STM32F078, STM32F091, STM32F098) SYSCFG_EXTICR4_EXTI12_PE 0101 Порт F (PF12) (только у STM32F031, STM32F038, STM32F051, STM32F058) SYSCFG_EXTICR4_EXTI12_PF
SYSCFG_CFGR2 — сигналы аварийного останова таймеров и чётность SRAM
Смещение 0x18, адрес 0x4001 0018, 32 бит, после сброса 0x0000 (при системном сбросе). В коде: SYSCFG->CFGR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SRAM_PEF | — | PVD_LOCK | SRAM_PARITY_LOCK | LOCKUP_LOCK | ||||||||||
- SRAM_PEF (бит 8) — Флаг ошибки чётности SRAM; сбрасывается записью 1.
- PVD_LOCK (бит 2) — Подключение выхода PVD к входу аварийного останова таймеров; снимается только сбросом (только у STM32F031, STM32F042, STM32F051, STM32F071, STM32F072, STM32F091).
- SRAM_PARITY_LOCK (бит 1) — Подключение ошибки чётности SRAM к входу аварийного останова таймеров.
- LOCKUP_LOCK (бит 0) — Подключение сигнала LOCKUP ядра (отказ в обработчике HardFault) к аварийному останову таймеров.
Частые вопросы
Как сделать загрузчик на STM32F0 без VTOR?
Приложение, расположенное за загрузчиком, копирует свою таблицу векторов (48 слов) в начало SRAM и переключает SYSCFG_CFGR1.MEM_MODE на SRAM (11). После этого прерывания идут по таблице в SRAM. Скрипт компоновщика должен оставить эти 192 байта SRAM свободными.
Как подключить PB3 к линии EXTI3?
Включите тактирование SYSCFG и запишите в поле EXTI3 регистра SYSCFG_EXTICR1 значение 1 (порт B): SYSCFG->EXTICR[0] = SYSCFG_EXTICR1_EXTI3_PB. Остальное — в регистрах EXTI.
Источники
- STMicroelectronics. RM0091: Reference manual (Rev 10) — раздел 9.1: описание регистров, назначение полей и значения после сброса
- STMicroelectronics. cmsis-device-f0 v2.3.8: заголовки CMSIS stm32f031x6.h, stm32f038xx.h, stm32f042x6.h, stm32f048xx.h, stm32f051x8.h, stm32f058xx.h, stm32f071xb.h, stm32f072xb.h, stm32f078xx.h, stm32f091xc.h, stm32f098xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0
Нашли ошибку в регистрах?
Другие регистры STM32F0
- Все регистры STM32F0Блоки периферии и заголовки CMSIS
- RCC — тактирование и сбросRCC_CR, RCC_CFGR, RCC_CIR, RCC_APB2RSTR, RCC_APB1RSTR, RCC_AHBENR
- GPIO — порты ввода-выводаGPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_IDR, GPIOx_ODR
- EXTI — внешние прерыванияEXTI_IMR, EXTI_EMR, EXTI_RTSR, EXTI_FTSR, EXTI_SWIER, EXTI_PR
- USART — последовательные порты USARTUSART_CR1, USART_CR2, USART_CR3, USART_BRR, USART_GTPR, USART_RTOR
- SPI — интерфейсы SPI и I2SSPI_CR1, SPI_CR2, SPI_SR, SPI_DR, SPI_CRCPR, SPI_RXCRCR
- I2C — интерфейс I2CI2C_CR1, I2C_CR2, I2C_OAR1, I2C_OAR2, I2C_TIMINGR, I2C_TIMEOUTR
- TIM — таймерыTIMx_CR1, TIMx_CR2, TIMx_SMCR, TIMx_DIER, TIMx_SR, TIMx_EGR
- DMA — прямой доступ к памятиDMA_ISR, DMA_IFCR, DMA_CSELR, DMA_CCR, DMA_CNDTR, DMA_CPAR
- ADC — аналого-цифровой преобразовательADC_ISR, ADC_IER, ADC_CR, ADC_CFGR1, ADC_CFGR2, ADC_SMPR
- IWDG — независимый сторожевой таймерIWDG_KR, IWDG_PR, IWDG_RLR, IWDG_SR, IWDG_WINR
- WWDG — оконный сторожевой таймерWWDG_CR, WWDG_CFR, WWDG_SR
- CRC — вычислитель CRCCRC_DR, CRC_IDR, CRC_CR, CRC_INIT, CRC_POL
- DBGMCU — блок отладкиDBGMCU_IDCODE, DBGMCU_CR, DBGMCU_APB1_FZ, DBGMCU_APB2_FZ
- PWR — управление питаниемPWR_CR, PWR_CSR
- FLASH — интерфейс флеш-памятиFLASH_ACR, FLASH_KEYR, FLASH_OPTKEYR, FLASH_SR, FLASH_CR, FLASH_AR
- RTC — часы реального времениRTC_TR, RTC_DR, RTC_CR, RTC_ISR, RTC_PRER, RTC_WUTR
- DAC — цифро-аналоговый преобразовательDAC_CR, DAC_SWTRIGR, DAC_DHR12R1, DAC_DHR12L1, DAC_DHR8R1, DAC_DHR12R2
- CAN — контроллер CANCAN_MCR, CAN_MSR, CAN_TSR, CAN_RF0R, CAN_RF1R, CAN_IER