Ниже представлена таблица векторов прерываний для семейств STM32F101, STM32F102, STM32F103 с размером флеша до 512 кб. Жёлтым цветом выделены системные исключения. Чтобы увидеть подробное описание — щёлкните по соответствующему акрониму.
Для того, чтобы каждый раз не прописывать эту таблицу в своих проектах — просто скачайте архив с файлом stm32_IRQ_table.asm и вставляйте этот файл в свои проекты директивой GET.
IRQ N | Приоритет (тип) | Акроним | Краткое описание | Адрес |
адрес начала стека | 0x0000 0000 | |||
-3 (фикс.) | Reset | запуск / перезапуск | 0x0000 0004 | |
-2 (фикс.) | NMI | немаскируемое прерывание | 0x0000 0008 | |
-1 (фикс.) | HardFault | тяжёлый отказ | 0x0000 000C | |
0 (прогр.) | MemManageFault | отказ системы управления памятью | 0x0000 0010 | |
0 (прогр.) | BusFault | отказ шины | 0x0000 0014 | |
0 (прогр.) | UsageFault | отказ программы | 0x0000 0018 | |
зарезервировано 4 адреса | 0x0000 001С- 0x0000 002B | |||
0 (прогр.) | SVCall | вызов супервизора | 0x0000 002C | |
0 (прогр.) | Debug Monitor | исключение монитора отладки | 0x0000 0030 | |
зарезервировано | 0x0000 0034 | |||
0 (прогр.) | PendSV | запрос системной службы | 0x0000 0038 | |
0 (прогр.) | SysTick | системный таймер | 0x0000 003C | |
0 | 0 (прогр.) | WWDG | оконный собачий таймер | 0x0000 0040 |
1 | 0 (прогр.) | PVD | програмируемый детектор напряжения (линия 16 модуля EXTI) | 0x0000 0044 |
2 | 0 (прогр.) | TAMPER | прерывание от события TAMPER | 0x0000 0048 |
3 | 0 (прогр.) | RTC | глобальное прерывание от часов реального времени | 0x0000 004C |
4 | 0 (прогр.) | FLASH | любое немаскированное прерывание от модуля FSMC | 0x0000 0050 |
5 | 0 (прогр.) | RCC | любое немаскированное прерывание от модуля RCC | 0x0000 0054 |
6 | 0 (прогр.) | EXTI0 | прерывание от линии 0 модуля EXTI (PA0, PB0, PC0, PD0, PE0, PF0, PG0) | 0x0000 0058 |
7 | 0 (прогр.) | EXTI1 | прерывание от линии 1 модуля EXTI (PA1, PB1, PC1, PD1, PE1, PF1, PG1) | 0x0000 005C |
8 | 0 (прогр.) | EXTI2 | прерывание от линии 2 модуля EXTI (PA2, PB2, PC2, PD2, PE2, PF2, PG2) | 0x0000 0060 |
9 | 0 (прогр.) | EXTI3 | прерывание от линии 3 модуля EXTI (PA3, PB3, PC3, PD3, PE3, PF3, PG3) | 0x0000 0064 |
10 | 0 (прогр.) | EXTI4 | прерывание от линии 4 модуля EXTI (PA4, PB4, PC4, PD4, PE4, PF4, PG4) | 0x0000 0068 |
11 | 0 (прогр.) | DMA1_Channel1 | любое немаскированное прерывание от канала 1 модуля DMA1 | 0x0000 006C |
12 | 0 (прогр.) | DMA1_Channel2 | любое немаскированное прерывание от канала 2 модуля DMA1 | 0x0000 0070 |
13 | 0 (прогр.) | DMA1_Channel3 | любое немаскированное прерывание от канала 3 модуля DMA1 | 0x0000 0074 |
14 | 0 (прогр.) | DMA1_Channel4 | любое немаскированное прерывание от канала 4 модуля DMA1 | 0x0000 0078 |
15 | 0 (прогр.) | DMA1_Channel5 | любое немаскированное прерывание от канала 5 модуля DMA1 | 0x0000 007C |
16 | 0 (прогр.) | DMA1_Channel6 | любое немаскированное прерывание от канала 6 модуля DMA1 | 0x0000 0080 |
17 | 0 (прогр.) | DMA1_Channel7 | любое немаскированное прерывание от канала 7 модуля DMA1 | 0x0000 0084 |
18 | 0 (прогр.) | ADC1_2 | любое немаскированное прерывание от модулей ADC1, ADC2 | 0x0000 0088 |
19 | 0 (прогр.) | USB_HP_CAN_TX | высокоприоритетные прерывания от USB или от передатчика модуля CAN | 0x0000 008C |
20 | 0 (прогр.) | USB_LP_CAN_RX0 | низкоприоритетные прерывания от USB или от приёмного буфера FIFO_0 модуля CAN | 0x0000 0090 |
21 | 0 (прогр.) | CAN_RX1 | прерывания от приёмного буфера FIFO_1 модуля CAN | 0x0000 0094 |
22 | 0 (прогр.) | CAN_SCE | прерывание от события CAN Status Change Error | 0x0000 0098 |
23 | 0 (прогр.) | EXTI9_5 | прерывание от линий [9:5] модуля EXTI | 0x0000 009C |
24 | 0 (прогр.) | TIM1_BRK | прерывание по событию Break модуля TIM1 | 0x0000 00A0 |
25 | 0 (прогр.) | TIM1_UP | прерывание по событию Update модуля TIM1 | 0x0000 00A4 |
26 | 0 (прогр.) | TIM1_TRG_COM | прерывание от триггера или события COM модуля TIM1 | 0x0000 00A8 |
27 | 0 (прогр.) | TIM1_CC | прерывание от события захват/сравнение модуля TIM1 | 0x0000 00AC |
28 | 0 (прогр.) | TIM2 | любое прерывание от модуля TIM2 | 0x0000 00B0 |
29 | 0 (прогр.) | TIM3 | любое прерывание от модуля TIM3 | 0x0000 00B4 |
30 | 0 (прогр.) | TIM4 | любое прерывание от модуля TIM4 | 0x0000 00B8 |
31 | 0 (прогр.) | I2C1_EV | прерывание от события event модуля I2C1 | 0x0000 00BC |
32 | 0 (прогр.) | I2C1_ER | прерывание от события error модуля I2C1 | 0x0000 00C0 |
33 | 0 (прогр.) | I2C2_EV | прерывание от события event модуля I2C2 | 0x0000 00C4 |
34 | 0 (прогр.) | I2C2_ER | прерывание от события error модуля I2C2 | 0x0000 00C8 |
35 | 0 (прогр.) | SPI1 | прерывание от модуля SPI1 | 0x0000 00CC |
36 | 0 (прогр.) | SPI2 | прерывание от модуля SPI2 | 0x0000 00D0 |
37 | 0 (прогр.) | USART1 | прерывание от модуля USART1 | 0x0000 00D4 |
38 | 0 (прогр.) | USART2 | прерывание от модуля USART2 | 0x0000 00D8 |
39 | 0 (прогр.) | USART3 | прерывание от модуля USART3 | 0x0000 00DC |
40 | 0 (прогр.) | EXTI15_10 | прерывание от линий [15:10] модуля EXTI | 0x0000 00E0 |
41 | 0 (прогр.) | RTCAlarm | прерывание от события RTC alarm (линия 17 модуля EXTI) | 0x0000 00E4 |
42 | 0 (прогр.) | USBWakeup | прерывание от события USB wakeup from suspend (линия 18 модуля EXTI) | 0x0000 00E8 |
43 | 0 (прогр.) | TIM8_BRK | прерывание по событию Break модуля TIM8 | 0x0000 00EC |
44 | 0 (прогр.) | TIM8_UP | прерывание по событию Update модуля TIM8 | 0x0000 00F0 |
45 | 0 (прогр.) | TIM8_TRG_COM | прерывание от триггера или события COM модуля TIM8 | 0x0000 00F4 |
46 | 0 (прогр.) | TIM8_CC | прерывание от события захват/сравнение модуля TIM8 | 0x0000 00F8 |
47 | 0 (прогр.) | ADC3 | прерывание от модуля ADC3 | 0x0000 00FC |
48 | 0 (прогр.) | FSMC | прерывание от модуля FSMC | 0x0000 0100 |
49 | 0 (прогр.) | SDIO | прерывание от модуля SDIO | 0x0000 0104 |
50 | 0 (прогр.) | TIM5 | прерывание от модуля TIM5 | 0x0000 0108 |
51 | 0 (прогр.) | SPI3 | прерывание от модуля SPI3 | 0x0000 010C |
52 | 0 (прогр.) | UART4 | прерывание от модуля UART4 | 0x0000 0110 |
53 | 0 (прогр.) | UART5 | прерывание от модуля UART5 | 0x0000 0114 |
54 | 0 (прогр.) | TIM6 | прерывание от модуля TIM6 | 0x0000 0118 |
55 | 0 (прогр.) | TIM7 | прерывание от модуля TIM7 | 0x0000 011C |
56 | 0 (прогр.) | DMA2_Channel1 | прерывание от канала Channel1 модуля DMA2 | 0x0000 0120 |
57 | 0 (прогр.) | DMA2_Channel2 | прерывание от канала Channel2 модуля DMA2 | 0x0000 0124 |
58 | 0 (прогр.) | DMA2_Channel3 | прерывание от канала Channel3 модуля DMA2 | 0x0000 0128 |
59 | 0 (прогр.) | DMA2_Channel4_5 | прерывание от каналов Channel4 и Channel5 модуля DMA2 | 0x0000 012C |
- Часть 1. Установка MDK, создание проекта, основы Keil uVision
- Часть 2. Команды и директивы ассемблера, структура и синтаксис программы. Первая программа для STM32
- Часть 3. Карта памяти контроллеров STM32, методы работы с памятью
- Часть 4. Регистры, старт и режимы работы контроллеров STM32
- Часть 5. Как залить прошивку в контроллер
- Часть 6. Настройка системы тактирования
- Часть 7. Работа с портами ввода-вывода
- Часть 8. Процедуры на ассемблере для STM32
- Часть 9. Система прерываний
- Часть 10. CMSIS, использование стандартных библиотек и функций
- Часть 11. Подключение и использование драйверов из пакета StdPeriph
- Часть 12. Работа с модулями USART и UART.
- Часть 13. Работа с модулями ADC
- Часть 14. Использование DMA
- Часть 15. Таймеры. Глава 1 — Введение. Простейшие таймеры
- Часть 15. Таймеры. Глава 2 — Таймеры общего назначения TIM9 — TIM14
- Часть 15. Таймеры. Глава 3 — Таймеры общего назначения TIM2 — TIM5
- Часть 15. Таймеры. Глава 4 — Продвинутые таймеры TIM1, TIM8
- Часть 16. Создание устройства USB HID в Keil uVision при помощи библиотечного компонента USB
- Приложение 1. Набор инструкций THUMB-2 и особенности их использования
- Приложение 2. Таблица векторов прерываний для семейств STM32F101, STM32F102, STM32F103
- Приложение 3. Драйвера и функции библиотеки StdPeriph