Перейти к содержанию

Регистры EXTI STM32H7

Регистры EXTI STM32H742/H743/H750/H753: выбор фронта и программный запуск, маски прерываний и событий ядра, флаги срабатывания и пробуждение домена D3 для 88 линий.

EXTI STM32H7 разделён на общую часть (RTSR, FTSR, SWIER — фронты и программный запуск) и регистры ядра CPUIMR, CPUEMR и CPUPR — в CMSIS это IMR1…IMR3, EMR1…EMR3 и PR1…PR3 со смещением 0x80. Линии 0–15 — выводы портов (SYSCFG_EXTICR), остальные — внутренние события периферии (RM0433, раздел 20.6).

Регистры D3PMR и D3PCR задают, какие линии будят домен D3 без ядра и каким сигналом сбрасывается такой запрос. MR25 регистра EXTI_D3PMR1 заголовки помещают в бит 24, руководство — в бит 25, поэтому поле на странице не показано.

ЭкземплярБазовый адресЕсть у
EXTI0x5800 0000всех

Регистры блока

РегистрСмещениеНазначениеПосле сброса
EXTI_RTSR10x00Срабатывание по нарастающему фронту, линии 0–310x0000 0000
EXTI_FTSR10x04Срабатывание по спадающему фронту, линии 0–310x0000 0000
EXTI_SWIER10x08Программный запуск, линии 0–310x0000 0000
EXTI_D3PMR10x0CПробуждение домена D3, линии 0–310x0000 0000
EXTI_D3PCR1L0x10Сигнал сброса пробуждения D3, линии 0–150x0000 0000
EXTI_D3PCR1H0x14Сигнал сброса пробуждения D3, линии 16–310x0000 0000
EXTI_RTSR20x20Срабатывание по нарастающему фронту, линии 32–630x0000 0000
EXTI_FTSR20x24Срабатывание по спадающему фронту, линии 32–630x0000 0000
EXTI_SWIER20x28Программный запуск, линии 32–630x0000 0000
EXTI_D3PMR20x2CПробуждение домена D3, линии 32–630x0000 0000
EXTI_D3PCR2L0x30Сигнал сброса пробуждения D3, линии 32–470x0000 0000
EXTI_D3PCR2H0x34Сигнал сброса пробуждения D3, линии 48–630x0000 0000
EXTI_RTSR30x40Срабатывание по нарастающему фронту, линии 64–950x0000 0000
EXTI_FTSR30x44Срабатывание по спадающему фронту, линии 64–950x0000 0000
EXTI_SWIER30x48Программный запуск, линии 64–950x0000 0000
EXTI_CPUIMR10x80Маска прерываний ядра, линии 0–310xFFC0 0000
EXTI_CPUEMR10x84Маска событий ядра, линии 0–310x0000 0000
EXTI_CPUPR10x88Флаги срабатывания для ядра, линии 0–31не определено
EXTI_CPUIMR20x90Маска прерываний ядра, линии 32–630xFFF5 FFFF
EXTI_CPUEMR20x94Маска событий ядра, линии 32–630x0000 0000
EXTI_CPUPR20x98Флаги срабатывания для ядра, линии 32–63не определено
EXTI_CPUIMR30xA0Маска прерываний ядра, линии 64–950x018B FFFF
EXTI_CPUEMR30xA4Маска событий ядра, линии 64–950x0000 0000
EXTI_CPUPR30xA8Флаги срабатывания для ядра, линии 64–95не определено

Конструктор значения

Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.

Значение: 0x00000000

0000 0000 0000 0000 0000 0000 0000 0000

EXTI->RTSR1 = 0x00000000;

EXTI_RTSR1 — срабатывание по нарастающему фронту, линии 0–31

Смещение 0x00, адрес 0x5800 0000, 32 бит, после сброса 0x0000 0000. В коде: EXTI->RTSR1.

31302928272625242322212019181716
—TR21TR20TR19TR18TR17TR16
1514131211109876543210
TR15TR14TR13TR12TR11TR10TR9TR8TR7TR6TR5TR4TR3TR2TR1TR0
  • TR0–TR21 (по биту на каждый y, положение — на карте битов) — Срабатывание линии y по нарастающему фронту.

EXTI_FTSR1 — срабатывание по спадающему фронту, линии 0–31

Смещение 0x04, адрес 0x5800 0004, 32 бит, после сброса 0x0000 0000. В коде: EXTI->FTSR1.

31302928272625242322212019181716
—TR21TR20TR19TR18TR17TR16
1514131211109876543210
TR15TR14TR13TR12TR11TR10TR9TR8TR7TR6TR5TR4TR3TR2TR1TR0
  • TR0–TR21 (по биту на каждый y, положение — на карте битов) — Срабатывание линии y по спадающему фронту.

EXTI_SWIER1 — программный запуск, линии 0–31

Смещение 0x08, адрес 0x5800 0008, 32 бит, после сброса 0x0000 0000. В коде: EXTI->SWIER1.

31302928272625242322212019181716
—SWIER21SWIER20SWIER19SWIER18SWIER17SWIER16
1514131211109876543210
SWIER15SWIER14SWIER13SWIER12SWIER11SWIER10SWIER9SWIER8SWIER7SWIER6SWIER5SWIER4SWIER3SWIER2SWIER1SWIER0
  • SWIER0–SWIER21 (по биту на каждый y, положение — на карте битов) — Программный запуск линии y.

EXTI_D3PMR1 — пробуждение домена D3, линии 0–31

Смещение 0x0C, адрес 0x5800 000C, 32 бит, после сброса 0x0000 0000. В коде: EXTI->D3PMR1.

31302928272625242322212019181716
—MR21MR20MR19—
1514131211109876543210
MR15MR14MR13MR12MR11MR10MR9MR8MR7MR6MR5MR4MR3MR2MR1MR0
  • MR0–MR21 (по биту на каждый y, положение — на карте битов) — Линия y будит домен D3 (пробуждение без ядра).
  • MR3 (бит 3) — Линия 3 будит домен D3 (пробуждение без ядра).

EXTI_D3PCR1L — сигнал сброса пробуждения D3, линии 0–15

Смещение 0x10, адрес 0x5800 0010, 32 бит, после сброса 0x0000 0000. В коде: EXTI->D3PCR1L.

31302928272625242322212019181716
PCS15PCS14PCS13PCS12PCS11PCS10PCS9PCS8
1514131211109876543210
PCS7PCS6PCS5PCS4PCS3PCS2PCS1PCS0
  • PCS0–PCS15 (по 2 бита на каждый y, положение — на карте битов) — Сигнал, сбрасывающий запрос пробуждения D3 линии y: выход DMAMUX2 или LPTIM.
  • PCS3 (биты 7:6) — Сигнал, сбрасывающий запрос пробуждения D3 линии 3: выход DMAMUX2 или LPTIM.
  • PCS2 (биты 5:4) — Сигнал, сбрасывающий запрос пробуждения D3 линии 2: выход DMAMUX2 или LPTIM.

EXTI_D3PCR1H — сигнал сброса пробуждения D3, линии 16–31

Смещение 0x14, адрес 0x5800 0014, 32 бит, после сброса 0x0000 0000. В коде: EXTI->D3PCR1H.

31302928272625242322212019181716
—PCS25—
1514131211109876543210
—PCS21PCS20PCS19—
  • PCS19–PCS25 (по 2 бита на каждый y, положение — на карте битов) — Сигнал, сбрасывающий запрос пробуждения D3 линии y: выход DMAMUX2 или LPTIM.

EXTI_RTSR2 — срабатывание по нарастающему фронту, линии 32–63

Смещение 0x20, адрес 0x5800 0020, 32 бит, после сброса 0x0000 0000. В коде: EXTI->RTSR2.

31302928272625242322212019181716
—TR51—TR49—
1514131211109876543210
—
  • TR51 (бит 19) — Срабатывание линии 51 по нарастающему фронту.
  • TR49 (бит 17) — Срабатывание линии 49 по нарастающему фронту.

EXTI_FTSR2 — срабатывание по спадающему фронту, линии 32–63

Смещение 0x24, адрес 0x5800 0024, 32 бит, после сброса 0x0000 0000. В коде: EXTI->FTSR2.

31302928272625242322212019181716
—TR51—TR49—
1514131211109876543210
—
  • TR51 (бит 19) — Срабатывание линии 51 по спадающему фронту.
  • TR49 (бит 17) — Срабатывание линии 49 по спадающему фронту.

EXTI_SWIER2 — программный запуск, линии 32–63

Смещение 0x28, адрес 0x5800 0028, 32 бит, после сброса 0x0000 0000. В коде: EXTI->SWIER2.

31302928272625242322212019181716
—SWIER51—SWIER49—
1514131211109876543210
—
  • SWIER51 (бит 19) — Программный запуск линии 51.
  • SWIER49 (бит 17) — Программный запуск линии 49.

EXTI_D3PMR2 — пробуждение домена D3, линии 32–63

Смещение 0x2C, адрес 0x5800 002C, 32 бит, после сброса 0x0000 0000. В коде: EXTI->D3PMR2.

31302928272625242322212019181716
—MR53MR52MR51MR50MR49MR48
1514131211109876543210
—MR41—MR35MR34—
  • MR34–MR53 (по биту на каждый y, положение — на карте битов) — Линия y будит домен D3 (пробуждение без ядра).

EXTI_D3PCR2L — сигнал сброса пробуждения D3, линии 32–47

Смещение 0x30, адрес 0x5800 0030, 32 бит, после сброса 0x0000 0000. В коде: EXTI->D3PCR2L.

31302928272625242322212019181716
—PCS41—
1514131211109876543210
—PCS35PCS34—
  • PCS34–PCS41 (по 2 бита на каждый y, положение — на карте битов) — Сигнал, сбрасывающий запрос пробуждения D3 линии y: выход DMAMUX2 или LPTIM.

EXTI_D3PCR2H — сигнал сброса пробуждения D3, линии 48–63

Смещение 0x34, адрес 0x5800 0034, 32 бит, после сброса 0x0000 0000. В коде: EXTI->D3PCR2H.

31302928272625242322212019181716
—
1514131211109876543210
—PCS53PCS52PCS51PCS50PCS49PCS48
  • PCS48–PCS53 (по 2 бита на каждый y, положение — на карте битов) — Сигнал, сбрасывающий запрос пробуждения D3 линии y: выход DMAMUX2 или LPTIM.

EXTI_RTSR3 — срабатывание по нарастающему фронту, линии 64–95

Смещение 0x40, адрес 0x5800 0040, 32 бит, после сброса 0x0000 0000. В коде: EXTI->RTSR3.

31302928272625242322212019181716
—TR86TR85TR84—TR82—
1514131211109876543210
—
  • TR82–TR86 (по биту на каждый y, положение — на карте битов) — Срабатывание линии y по нарастающему фронту.

EXTI_FTSR3 — срабатывание по спадающему фронту, линии 64–95

Смещение 0x44, адрес 0x5800 0044, 32 бит, после сброса 0x0000 0000. В коде: EXTI->FTSR3.

31302928272625242322212019181716
—TR86TR85TR84—TR82—
1514131211109876543210
—
  • TR82–TR86 (по биту на каждый y, положение — на карте битов) — Срабатывание линии y по спадающему фронту.

EXTI_SWIER3 — программный запуск, линии 64–95

Смещение 0x48, адрес 0x5800 0048, 32 бит, после сброса 0x0000 0000. В коде: EXTI->SWIER3.

31302928272625242322212019181716
—SWIER86SWIER85SWIER84—SWIER82—
1514131211109876543210
—
  • SWIER82–SWIER86 (по биту на каждый y, положение — на карте битов) — Программный запуск линии y.

EXTI_CPUIMR1 — маска прерываний ядра, линии 0–31

Смещение 0x80, адрес 0x5800 0080, 32 бит, после сброса 0xFFC0 0000. В коде: EXTI->IMR1.

31302928272625242322212019181716
IM31IM30IM29IM28IM27IM26IM25IM24IM23IM22IM21IM20IM19IM18IM17IM16
1514131211109876543210
IM15IM14IM13IM12IM11IM10IM9IM8IM7IM6IM5IM4IM3IM2IM1IM0
  • IM0–IM31 (по биту на каждый y, положение — на карте битов) — Разрешение прерывания линии y для ядра.

EXTI_CPUEMR1 — маска событий ядра, линии 0–31

Смещение 0x84, адрес 0x5800 0084, 32 бит, после сброса 0x0000 0000. В коде: EXTI->EMR1.

31302928272625242322212019181716
EM31EM30EM29EM28EM27EM26EM25EM24EM23EM22EM21EM20—EM18EM17EM16
1514131211109876543210
EM15EM14EM13EM12EM11EM10EM9EM8EM7EM6EM5EM4EM3EM2EM1EM0
  • EM0–EM31 (по биту на каждый y, положение — на карте битов) — Разрешение события линии y для ядра.

EXTI_CPUPR1 — флаги срабатывания для ядра, линии 0–31

Смещение 0x88, адрес 0x5800 0088, 32 бит, после сброса не определено. В коде: EXTI->PR1.

31302928272625242322212019181716
—PR21PR20PR19PR18PR17PR16
1514131211109876543210
PR15PR14PR13PR12PR11PR10PR9PR8PR7PR6PR5PR4PR3PR2PR1PR0
  • PR0–PR21 (по биту на каждый y, положение — на карте битов) — Флаг срабатывания линии y; сбрасывается записью 1.
  • PR1 (бит 1) — Флаг срабатывания линии 1; сбрасывается записью 1.

EXTI_CPUIMR2 — маска прерываний ядра, линии 32–63

Смещение 0x90, адрес 0x5800 0090, 32 бит, после сброса 0xFFF5 FFFF. В коде: EXTI->IMR2.

31302928272625242322212019181716
IM63IM62IM61IM60IM59IM58IM57IM56IM55IM54IM53IM52IM51IM50IM49IM48
1514131211109876543210
IM47IM46—IM44IM43IM42IM41IM40IM39IM38IM37IM36IM35IM34IM33IM32
  • IM32–IM63 (по биту на каждый y, положение — на карте битов) — Разрешение прерывания линии y для ядра.

EXTI_CPUEMR2 — маска событий ядра, линии 32–63

Смещение 0x94, адрес 0x5800 0094, 32 бит, после сброса 0x0000 0000. В коде: EXTI->EMR2.

31302928272625242322212019181716
EM63EM62EM61EM60EM59EM58EM57EM56EM55EM54EM53EM52EM51EM50EM49EM48
1514131211109876543210
EM47EM46—EM44EM43EM42EM41EM40EM39EM38EM37EM36EM35EM34EM33EM32
  • EM32–EM63 (по биту на каждый y, положение — на карте битов) — Разрешение события линии y для ядра.

EXTI_CPUPR2 — флаги срабатывания для ядра, линии 32–63

Смещение 0x98, адрес 0x5800 0098, 32 бит, после сброса не определено. В коде: EXTI->PR2.

31302928272625242322212019181716
—PR51—PR49—
1514131211109876543210
—
  • PR51 (бит 19) — Флаг срабатывания линии 51; сбрасывается записью 1.
  • PR49 (бит 17) — Флаг срабатывания линии 49; сбрасывается записью 1.

EXTI_CPUIMR3 — маска прерываний ядра, линии 64–95

Смещение 0xA0, адрес 0x5800 00A0, 32 бит, после сброса 0x018B FFFF. В коде: EXTI->IMR3.

31302928272625242322212019181716
—IM87IM86IM85IM84—IM82—IM80
1514131211109876543210
IM79IM78IM77IM76IM75IM74IM73IM72IM71IM70IM69IM68IM67IM66IM65IM64
  • IM64–IM87 (по биту на каждый y, положение — на карте битов) — Разрешение прерывания линии y для ядра.

EXTI_CPUEMR3 — маска событий ядра, линии 64–95

Смещение 0xA4, адрес 0x5800 00A4, 32 бит, после сброса 0x0000 0000. В коде: EXTI->EMR3.

31302928272625242322212019181716
—EM87EM86EM85EM84—EM82EM81EM80
1514131211109876543210
EM79EM78EM77EM76EM75EM74EM73EM72EM71EM70EM69EM68EM67EM66EM65EM64
  • EM64–EM87 (по биту на каждый y, положение — на карте битов) — Разрешение события линии y для ядра.

EXTI_CPUPR3 — флаги срабатывания для ядра, линии 64–95

Смещение 0xA8, адрес 0x5800 00A8, 32 бит, после сброса не определено. В коде: EXTI->PR3.

31302928272625242322212019181716
—PR86PR85PR84—PR82—
1514131211109876543210
—
  • PR82–PR86 (по биту на каждый y, положение — на карте битов) — Флаг срабатывания линии y; сбрасывается записью 1.

Частые вопросы

Как разрешить прерывание от PC13 на STM32H7?

SYSCFG->EXTICR[3] — порт C для линии 13, EXTI->RTSR1 или FTSR1 — фронт, EXTI_D1->IMR1 |= 1 << 13 (регистр CPUIMR1) и NVIC_EnableIRQ(EXTI15_10_IRQn). Флаг сбрасывают записью единицы в EXTI_D1->PR1.

Источники

  1. STMicroelectronics. RM0433: Reference manual (Rev 9) — раздел 20.6: описание регистров, назначение полей и значения после сброса
  2. STMicroelectronics. cmsis-device-h7 v1.10.7: заголовки CMSIS stm32h742xx.h, stm32h743xx.h, stm32h750xx.h, stm32h753xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0

Нашли ошибку в регистрах?

Другие регистры STM32H7

Калькуляторы и статьи