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

Регистры AFIO STM32F1

Регистры AFIO STM32F1: переназначение выводов USART, SPI, I2C, CAN и таймеров в MAPR и MAPR2, отключение JTAG и SWD, выбор порта для каждой линии EXTI в EXTICR1–EXTICR4.

Блок AFIO у STM32F1 решает две задачи. Регистры MAPR и MAPR2 переносят альтернативные функции периферии на другие выводы — например, USART1 с PA9/PA10 на PB6/PB7 — и отключают отладочный интерфейс JTAG, освобождая его выводы. Регистры EXTICR1–EXTICR4 выбирают, вывод какого порта подаётся на линию внешнего прерывания: линия EXTIn может слушать вывод n любого порта, но только одного.

Перед записью в регистры AFIO нужно включить его тактирование битом AFIOEN в RCC_APB2ENR (RM0008, раздел 9.4). Набор полей MAPR зависит от линейки: у connectivity line (STM32F105/107) есть биты Ethernet, CAN2 и SPI3, у устройств high-density — переназначение триггеров АЦП. Поля, которых нет у части устройств, отмечены ниже.

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

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

РегистрСмещениеНазначениеПосле сброса
AFIO_EVCR0x00Вывод события Cortex EVENTOUT0x0000 0000
AFIO_MAPR0x04Переназначение функций и отладочный интерфейс0x0000 0000
AFIO_EXTICR10x08Источники линий EXTI0–EXTI30x0000
AFIO_EXTICR20x0CИсточники линий EXTI4–EXTI70x0000
AFIO_EXTICR30x10Источники линий EXTI8–EXTI110x0000
AFIO_EXTICR40x14Источники линий EXTI12–EXTI150x0000
AFIO_MAPR20x1CПереназначение функций, регистр 20x0000 0000

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

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

Значение: 0x00000000

0000 0000 0000 0000 0000 0000 0000 0000

AFIO->EVCR = 0x00000000;

AFIO_EVCR — вывод события Cortex EVENTOUT

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

31302928272625242322212019181716
—
1514131211109876543210
—EVOEPORTPIN
  • EVOE (бит 7) — Вывод сигнала Cortex EVENTOUT на выбранный вывод.
    EVOEЗначение
    0Выключен
    1EVENTOUT выводится на выбранный вывод
  • PORT (биты 6:4) — Порт для сигнала EVENTOUT.
    PORTЗначениеМакрос CMSIS
    000Порт A (PA)AFIO_EVCR_PORT_PA
    001Порт B (PB)AFIO_EVCR_PORT_PB
    010Порт C (PC)AFIO_EVCR_PORT_PC
    011Порт D (PD)AFIO_EVCR_PORT_PD
    100Порт E (PE)AFIO_EVCR_PORT_PE
  • PIN (биты 3:0) — Номер вывода для сигнала EVENTOUT.
    PINЗначениеМакрос CMSIS
    0000Вывод 0 выбранного портаAFIO_EVCR_PIN_PX0
    0001Вывод 1 выбранного портаAFIO_EVCR_PIN_PX1
    0010Вывод 2 выбранного портаAFIO_EVCR_PIN_PX2
    0011Вывод 3 выбранного портаAFIO_EVCR_PIN_PX3
    0100Вывод 4 выбранного портаAFIO_EVCR_PIN_PX4
    0101Вывод 5 выбранного портаAFIO_EVCR_PIN_PX5
    0110Вывод 6 выбранного портаAFIO_EVCR_PIN_PX6
    0111Вывод 7 выбранного портаAFIO_EVCR_PIN_PX7
    1000Вывод 8 выбранного портаAFIO_EVCR_PIN_PX8
    1001Вывод 9 выбранного портаAFIO_EVCR_PIN_PX9
    1010Вывод 10 выбранного портаAFIO_EVCR_PIN_PX10
    1011Вывод 11 выбранного портаAFIO_EVCR_PIN_PX11
    1100Вывод 12 выбранного портаAFIO_EVCR_PIN_PX12
    1101Вывод 13 выбранного портаAFIO_EVCR_PIN_PX13
    1110Вывод 14 выбранного портаAFIO_EVCR_PIN_PX14
    1111Вывод 15 выбранного портаAFIO_EVCR_PIN_PX15

AFIO_MAPR — переназначение функций и отладочный интерфейс

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

31302928272625242322212019181716
—PTP_PPS_REMAPTIM2ITR1_IREMAPSPI3_REMAP—SWJ_CFGMII_RMII_SELCAN2_REMAPETH_REMAPADC2_ETRGREG_REMAPADC2_ETRGINJ_REMAPADC1_ETRGREG_REMAPADC1_ETRGINJ_REMAPTIM5CH4_IREMAP
1514131211109876543210
PD01_REMAPCAN_REMAPTIM4_REMAPTIM3_REMAPTIM2_REMAPTIM1_REMAPUSART3_REMAPUSART2_REMAPUSART1_REMAPI2C1_REMAPSPI1_REMAP
  • PTP_PPS_REMAP (бит 30) — Вывод импульса PPS Ethernet PTP на PB5 (только у STM32F105, STM32F107).
    PTP_PPS_REMAPЗначение
    0PPS не выводится
    1PPS выводится на PB5
  • TIM2ITR1_IREMAP (бит 29) — Источник внутреннего триггера ITR1 таймера TIM2 (только у STM32F105, STM32F107).
    TIM2ITR1_IREMAPЗначение
    0ITR1 от выхода PTP Ethernet
    1ITR1 от сигнала SOF USB OTG
  • SPI3_REMAP (бит 28) — Переназначение выводов SPI3/I2S3 (только у STM32F105, STM32F107).
    SPI3_REMAPЗначение
    0NSS — PA15, SCK — PB3, MISO — PB4, MOSI — PB5
    1NSS — PA4, SCK — PC10, MISO — PC11, MOSI — PC12
  • SWJ_CFG (биты 26:24) — Отладочный интерфейс: JTAG и SWD.
    SWJ_CFGЗначениеМакрос CMSIS
    000JTAG и SWD включены — состояние после сбросаAFIO_MAPR_SWJ_CFG_RESET
    001JTAG и SWD включены, но без вывода NJTRST (PB4 свободен)AFIO_MAPR_SWJ_CFG_NOJNTRST
    010JTAG выключен, SWD включён: свободны PA15, PB3, PB4AFIO_MAPR_SWJ_CFG_JTAGDISABLE
    100JTAG и SWD выключены: свободны и PA13, PA14AFIO_MAPR_SWJ_CFG_DISABLE
  • MII_RMII_SEL (бит 23) — Интерфейс Ethernet PHY: MII или RMII (только у STM32F105, STM32F107).
    MII_RMII_SELЗначение
    0MII
    1RMII
  • CAN2_REMAP (бит 22) — Переназначение выводов CAN2 (только у STM32F105, STM32F107).
    CAN2_REMAPЗначение
    0CAN2_RX — PB12, CAN2_TX — PB13
    1CAN2_RX — PB5, CAN2_TX — PB6
  • ETH_REMAP (бит 21) — Переназначение выводов приёмника Ethernet MAC (только у STM32F105, STM32F107).
    ETH_REMAPЗначение
    0RX_DV/CRS_DV — PA7, RXD0 — PC4, RXD1 — PC5, RXD2 — PB0, RXD3 — PB1
    1RX_DV/CRS_DV — PD8, RXD0–RXD3 — PD9–PD12
  • ADC2_ETRGREG_REMAP (бит 20) — Внешний запуск регулярных преобразований АЦП2 (только у STM32F103xE/xG).
    ADC2_ETRGREG_REMAPЗначение
    0Запуск от EXTI11
    1Запуск от TIM8_TRGO
  • ADC2_ETRGINJ_REMAP (бит 19) — Внешний запуск инжектированных преобразований АЦП2 (только у STM32F103xE/xG).
    ADC2_ETRGINJ_REMAPЗначение
    0Запуск от EXTI15
    1Запуск от TIM8, канал 4
  • ADC1_ETRGREG_REMAP (бит 18) — Внешний запуск регулярных преобразований АЦП1 (только у STM32F103xE/xG).
    ADC1_ETRGREG_REMAPЗначение
    0Запуск от EXTI11
    1Запуск от TIM8_TRGO
  • ADC1_ETRGINJ_REMAP (бит 17) — Внешний запуск инжектированных преобразований АЦП1 (только у STM32F103xE/xG).
    ADC1_ETRGINJ_REMAPЗначение
    0Запуск от EXTI15
    1Запуск от TIM8, канал 4
  • TIM5CH4_IREMAP (бит 16) — Внутреннее подключение канала 4 TIM5 к LSI для калибровки (только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107).
    TIM5CH4_IREMAPЗначение
    0TIM5_CH4 подключён к PA3
    1На TIM5_CH4 подаётся LSI для калибровки
  • PD01_REMAP (бит 15) — PD0 и PD1 на выводах кварца OSC_IN и OSC_OUT.
    PD01_REMAPЗначение
    0Без переназначения
    1PD0 на OSC_IN, PD1 на OSC_OUT (корпуса на 36, 48 и 64 вывода)
  • CAN_REMAP (биты 14:13) — Переназначение выводов CAN (CAN1 у connectivity line) (только у STM32F103, STM32F105, STM32F107).
    CAN_REMAPЗначениеМакрос CMSIS
    00CAN_RX — PA11, CAN_TX — PA12AFIO_MAPR_CAN_REMAP_REMAP1
    10CAN_RX — PB8, CAN_TX — PB9 (нет в корпусе на 36 выводов)AFIO_MAPR_CAN_REMAP_REMAP2
    11CAN_RX — PD0, CAN_TX — PD1AFIO_MAPR_CAN_REMAP_REMAP3
  • TIM4_REMAP (бит 12) — Переназначение каналов TIM4 (только у STM32F101xB/xE/xG, STM32F102xB, STM32F103xB/xE/xG, STM32F105, STM32F107).
    TIM4_REMAPЗначение
    0CH1–CH4 — PB6–PB9
    1CH1–CH4 — PD12–PD15
  • TIM3_REMAP (биты 11:10) — Переназначение каналов TIM3.
    TIM3_REMAPЗначениеМакрос CMSIS
    00Без переназначения: CH1 — PA6, CH2 — PA7, CH3 — PB0, CH4 — PB1AFIO_MAPR_TIM3_REMAP_NOREMAP
    10Частичное: CH1 — PB4, CH2 — PB5, CH3 — PB0, CH4 — PB1AFIO_MAPR_TIM3_REMAP_PARTIALREMAP
    11Полное: CH1 — PC6, CH2 — PC7, CH3 — PC8, CH4 — PC9AFIO_MAPR_TIM3_REMAP_FULLREMAP
  • TIM2_REMAP (биты 9:8) — Переназначение каналов TIM2.
    TIM2_REMAPЗначениеМакрос CMSIS
    00Без переназначения: CH1/ETR — PA0, CH2 — PA1, CH3 — PA2, CH4 — PA3AFIO_MAPR_TIM2_REMAP_NOREMAP
    01Частичное 1: CH1/ETR — PA15, CH2 — PB3, CH3 — PA2, CH4 — PA3AFIO_MAPR_TIM2_REMAP_PARTIALREMAP1
    10Частичное 2: CH1/ETR — PA0, CH2 — PA1, CH3 — PB10, CH4 — PB11AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2
    11Полное: CH1/ETR — PA15, CH2 — PB3, CH3 — PB10, CH4 — PB11AFIO_MAPR_TIM2_REMAP_FULLREMAP
  • TIM1_REMAP (биты 7:6) — Переназначение каналов TIM1.
    TIM1_REMAPЗначениеМакрос CMSIS
    00Без переназначения: ETR — PA12, CH1–CH4 — PA8–PA11, BKIN — PB12, CH1N–CH3N — PB13–PB15AFIO_MAPR_TIM1_REMAP_NOREMAP
    01Частичное: ETR — PA12, CH1–CH4 — PA8–PA11, BKIN — PA6, CH1N — PA7, CH2N — PB0, CH3N — PB1AFIO_MAPR_TIM1_REMAP_PARTIALREMAP
    11Полное: ETR — PE7, CH1 — PE9, CH2 — PE11, CH3 — PE13, CH4 — PE14, BKIN — PE15, CH1N–CH3N — PE8, PE10, PE12AFIO_MAPR_TIM1_REMAP_FULLREMAP
  • USART3_REMAP (биты 5:4) — Переназначение выводов USART3 (только у STM32F101xB/xE/xG, STM32F102xB, STM32F103xB/xE/xG, STM32F105, STM32F107).
    USART3_REMAPЗначениеМакрос CMSIS
    00Без переназначения: TX — PB10, RX — PB11, CK — PB12, CTS — PB13, RTS — PB14AFIO_MAPR_USART3_REMAP_NOREMAP
    01Частичное: TX — PC10, RX — PC11, CK — PC12, CTS — PB13, RTS — PB14AFIO_MAPR_USART3_REMAP_PARTIALREMAP
    11Полное: TX — PD8, RX — PD9, CK — PD10, CTS — PD11, RTS — PD12AFIO_MAPR_USART3_REMAP_FULLREMAP
  • USART2_REMAP (бит 3) — Переназначение выводов USART2.
    USART2_REMAPЗначение
    0CTS — PA0, RTS — PA1, TX — PA2, RX — PA3, CK — PA4
    1CTS — PD3, RTS — PD4, TX — PD5, RX — PD6, CK — PD7
  • USART1_REMAP (бит 2) — Переназначение выводов USART1.
    USART1_REMAPЗначение
    0TX — PA9, RX — PA10
    1TX — PB6, RX — PB7
  • I2C1_REMAP (бит 1) — Переназначение выводов I2C1.
    I2C1_REMAPЗначение
    0SCL — PB6, SDA — PB7
    1SCL — PB8, SDA — PB9
  • SPI1_REMAP (бит 0) — Переназначение выводов SPI1.
    SPI1_REMAPЗначение
    0NSS — PA4, SCK — PA5, MISO — PA6, MOSI — PA7
    1NSS — PA15, SCK — PB3, MISO — PB4, MOSI — PB5

AFIO_EXTICR1 — источники линий EXTI0–EXTI3

Смещение 0x08, адрес 0x4001 0008, 32 бит, после сброса 0x0000. В коде: AFIO->EXTICR[0].

31302928272625242322212019181716
—
1514131211109876543210
EXTI3EXTI2EXTI1EXTI0
  • EXTI3 (биты 15:12) — Порт, вывод 3 которого подключён к линии EXTI3.
    EXTI3ЗначениеМакрос CMSIS
    0000Порт A (PA3)AFIO_EXTICR1_EXTI3_PA
    0001Порт B (PB3)AFIO_EXTICR1_EXTI3_PB
    0010Порт C (PC3)AFIO_EXTICR1_EXTI3_PC
    0011Порт D (PD3)AFIO_EXTICR1_EXTI3_PD
    0100Порт E (PE3)AFIO_EXTICR1_EXTI3_PE
    0101Порт F (PF3)AFIO_EXTICR1_EXTI3_PF
    0110Порт G (PG3)AFIO_EXTICR1_EXTI3_PG
  • EXTI2 (биты 11:8) — Порт, вывод 2 которого подключён к линии EXTI2.
    EXTI2ЗначениеМакрос CMSIS
    0000Порт A (PA2)AFIO_EXTICR1_EXTI2_PA
    0001Порт B (PB2)AFIO_EXTICR1_EXTI2_PB
    0010Порт C (PC2)AFIO_EXTICR1_EXTI2_PC
    0011Порт D (PD2)AFIO_EXTICR1_EXTI2_PD
    0100Порт E (PE2)AFIO_EXTICR1_EXTI2_PE
    0101Порт F (PF2)AFIO_EXTICR1_EXTI2_PF
    0110Порт G (PG2)AFIO_EXTICR1_EXTI2_PG
  • EXTI1 (биты 7:4) — Порт, вывод 1 которого подключён к линии EXTI1.
    EXTI1ЗначениеМакрос CMSIS
    0000Порт A (PA1)AFIO_EXTICR1_EXTI1_PA
    0001Порт B (PB1)AFIO_EXTICR1_EXTI1_PB
    0010Порт C (PC1)AFIO_EXTICR1_EXTI1_PC
    0011Порт D (PD1)AFIO_EXTICR1_EXTI1_PD
    0100Порт E (PE1)AFIO_EXTICR1_EXTI1_PE
    0101Порт F (PF1)AFIO_EXTICR1_EXTI1_PF
    0110Порт G (PG1)AFIO_EXTICR1_EXTI1_PG
  • EXTI0 (биты 3:0) — Порт, вывод 0 которого подключён к линии EXTI0.
    EXTI0ЗначениеМакрос CMSIS
    0000Порт A (PA0)AFIO_EXTICR1_EXTI0_PA
    0001Порт B (PB0)AFIO_EXTICR1_EXTI0_PB
    0010Порт C (PC0)AFIO_EXTICR1_EXTI0_PC
    0011Порт D (PD0)AFIO_EXTICR1_EXTI0_PD
    0100Порт E (PE0)AFIO_EXTICR1_EXTI0_PE
    0101Порт F (PF0)AFIO_EXTICR1_EXTI0_PF
    0110Порт G (PG0)AFIO_EXTICR1_EXTI0_PG

AFIO_EXTICR2 — источники линий EXTI4–EXTI7

Смещение 0x0C, адрес 0x4001 000C, 32 бит, после сброса 0x0000. В коде: AFIO->EXTICR[1].

31302928272625242322212019181716
—
1514131211109876543210
EXTI7EXTI6EXTI5EXTI4
  • EXTI7 (биты 15:12) — Порт, вывод 7 которого подключён к линии EXTI7.
    EXTI7ЗначениеМакрос CMSIS
    0000Порт A (PA7)AFIO_EXTICR2_EXTI7_PA
    0001Порт B (PB7)AFIO_EXTICR2_EXTI7_PB
    0010Порт C (PC7)AFIO_EXTICR2_EXTI7_PC
    0011Порт D (PD7)AFIO_EXTICR2_EXTI7_PD
    0100Порт E (PE7)AFIO_EXTICR2_EXTI7_PE
    0101Порт F (PF7)AFIO_EXTICR2_EXTI7_PF
    0110Порт G (PG7)AFIO_EXTICR2_EXTI7_PG
  • EXTI6 (биты 11:8) — Порт, вывод 6 которого подключён к линии EXTI6.
    EXTI6ЗначениеМакрос CMSIS
    0000Порт A (PA6)AFIO_EXTICR2_EXTI6_PA
    0001Порт B (PB6)AFIO_EXTICR2_EXTI6_PB
    0010Порт C (PC6)AFIO_EXTICR2_EXTI6_PC
    0011Порт D (PD6)AFIO_EXTICR2_EXTI6_PD
    0100Порт E (PE6)AFIO_EXTICR2_EXTI6_PE
    0101Порт F (PF6)AFIO_EXTICR2_EXTI6_PF
    0110Порт G (PG6)AFIO_EXTICR2_EXTI6_PG
  • EXTI5 (биты 7:4) — Порт, вывод 5 которого подключён к линии EXTI5.
    EXTI5ЗначениеМакрос CMSIS
    0000Порт A (PA5)AFIO_EXTICR2_EXTI5_PA
    0001Порт B (PB5)AFIO_EXTICR2_EXTI5_PB
    0010Порт C (PC5)AFIO_EXTICR2_EXTI5_PC
    0011Порт D (PD5)AFIO_EXTICR2_EXTI5_PD
    0100Порт E (PE5)AFIO_EXTICR2_EXTI5_PE
    0101Порт F (PF5)AFIO_EXTICR2_EXTI5_PF
    0110Порт G (PG5)AFIO_EXTICR2_EXTI5_PG
  • EXTI4 (биты 3:0) — Порт, вывод 4 которого подключён к линии EXTI4.
    EXTI4ЗначениеМакрос CMSIS
    0000Порт A (PA4)AFIO_EXTICR2_EXTI4_PA
    0001Порт B (PB4)AFIO_EXTICR2_EXTI4_PB
    0010Порт C (PC4)AFIO_EXTICR2_EXTI4_PC
    0011Порт D (PD4)AFIO_EXTICR2_EXTI4_PD
    0100Порт E (PE4)AFIO_EXTICR2_EXTI4_PE
    0101Порт F (PF4)AFIO_EXTICR2_EXTI4_PF
    0110Порт G (PG4)AFIO_EXTICR2_EXTI4_PG

AFIO_EXTICR3 — источники линий EXTI8–EXTI11

Смещение 0x10, адрес 0x4001 0010, 32 бит, после сброса 0x0000. В коде: AFIO->EXTICR[2].

31302928272625242322212019181716
—
1514131211109876543210
EXTI11EXTI10EXTI9EXTI8
  • EXTI11 (биты 15:12) — Порт, вывод 11 которого подключён к линии EXTI11.
    EXTI11ЗначениеМакрос CMSIS
    0000Порт A (PA11)AFIO_EXTICR3_EXTI11_PA
    0001Порт B (PB11)AFIO_EXTICR3_EXTI11_PB
    0010Порт C (PC11)AFIO_EXTICR3_EXTI11_PC
    0011Порт D (PD11)AFIO_EXTICR3_EXTI11_PD
    0100Порт E (PE11)AFIO_EXTICR3_EXTI11_PE
    0101Порт F (PF11)AFIO_EXTICR3_EXTI11_PF
    0110Порт G (PG11)AFIO_EXTICR3_EXTI11_PG
  • EXTI10 (биты 11:8) — Порт, вывод 10 которого подключён к линии EXTI10.
    EXTI10ЗначениеМакрос CMSIS
    0000Порт A (PA10)AFIO_EXTICR3_EXTI10_PA
    0001Порт B (PB10)AFIO_EXTICR3_EXTI10_PB
    0010Порт C (PC10)AFIO_EXTICR3_EXTI10_PC
    0011Порт D (PD10)AFIO_EXTICR3_EXTI10_PD
    0100Порт E (PE10)AFIO_EXTICR3_EXTI10_PE
    0101Порт F (PF10)AFIO_EXTICR3_EXTI10_PF
    0110Порт G (PG10)AFIO_EXTICR3_EXTI10_PG
  • EXTI9 (биты 7:4) — Порт, вывод 9 которого подключён к линии EXTI9.
    EXTI9ЗначениеМакрос CMSIS
    0000Порт A (PA9)AFIO_EXTICR3_EXTI9_PA
    0001Порт B (PB9)AFIO_EXTICR3_EXTI9_PB
    0010Порт C (PC9)AFIO_EXTICR3_EXTI9_PC
    0011Порт D (PD9)AFIO_EXTICR3_EXTI9_PD
    0100Порт E (PE9)AFIO_EXTICR3_EXTI9_PE
    0101Порт F (PF9)AFIO_EXTICR3_EXTI9_PF
    0110Порт G (PG9)AFIO_EXTICR3_EXTI9_PG
  • EXTI8 (биты 3:0) — Порт, вывод 8 которого подключён к линии EXTI8.
    EXTI8ЗначениеМакрос CMSIS
    0000Порт A (PA8)AFIO_EXTICR3_EXTI8_PA
    0001Порт B (PB8)AFIO_EXTICR3_EXTI8_PB
    0010Порт C (PC8)AFIO_EXTICR3_EXTI8_PC
    0011Порт D (PD8)AFIO_EXTICR3_EXTI8_PD
    0100Порт E (PE8)AFIO_EXTICR3_EXTI8_PE
    0101Порт F (PF8)AFIO_EXTICR3_EXTI8_PF
    0110Порт G (PG8)AFIO_EXTICR3_EXTI8_PG

AFIO_EXTICR4 — источники линий EXTI12–EXTI15

Смещение 0x14, адрес 0x4001 0014, 32 бит, после сброса 0x0000. В коде: AFIO->EXTICR[3].

31302928272625242322212019181716
—
1514131211109876543210
EXTI15EXTI14EXTI13EXTI12
  • EXTI15 (биты 15:12) — Порт, вывод 15 которого подключён к линии EXTI15.
    EXTI15ЗначениеМакрос CMSIS
    0000Порт A (PA15)AFIO_EXTICR4_EXTI15_PA
    0001Порт B (PB15)AFIO_EXTICR4_EXTI15_PB
    0010Порт C (PC15)AFIO_EXTICR4_EXTI15_PC
    0011Порт D (PD15)AFIO_EXTICR4_EXTI15_PD
    0100Порт E (PE15)AFIO_EXTICR4_EXTI15_PE
    0101Порт F (PF15)AFIO_EXTICR4_EXTI15_PF
    0110Порт G (PG15)AFIO_EXTICR4_EXTI15_PG
  • EXTI14 (биты 11:8) — Порт, вывод 14 которого подключён к линии EXTI14.
    EXTI14ЗначениеМакрос CMSIS
    0000Порт A (PA14)AFIO_EXTICR4_EXTI14_PA
    0001Порт B (PB14)AFIO_EXTICR4_EXTI14_PB
    0010Порт C (PC14)AFIO_EXTICR4_EXTI14_PC
    0011Порт D (PD14)AFIO_EXTICR4_EXTI14_PD
    0100Порт E (PE14)AFIO_EXTICR4_EXTI14_PE
    0101Порт F (PF14)AFIO_EXTICR4_EXTI14_PF
    0110Порт G (PG14)AFIO_EXTICR4_EXTI14_PG
  • EXTI13 (биты 7:4) — Порт, вывод 13 которого подключён к линии EXTI13.
    EXTI13ЗначениеМакрос CMSIS
    0000Порт A (PA13)AFIO_EXTICR4_EXTI13_PA
    0001Порт B (PB13)AFIO_EXTICR4_EXTI13_PB
    0010Порт C (PC13)AFIO_EXTICR4_EXTI13_PC
    0011Порт D (PD13)AFIO_EXTICR4_EXTI13_PD
    0100Порт E (PE13)AFIO_EXTICR4_EXTI13_PE
    0101Порт F (PF13)AFIO_EXTICR4_EXTI13_PF
    0110Порт G (PG13)AFIO_EXTICR4_EXTI13_PG
  • EXTI12 (биты 3:0) — Порт, вывод 12 которого подключён к линии EXTI12.
    EXTI12ЗначениеМакрос CMSIS
    0000Порт A (PA12)AFIO_EXTICR4_EXTI12_PA
    0001Порт B (PB12)AFIO_EXTICR4_EXTI12_PB
    0010Порт C (PC12)AFIO_EXTICR4_EXTI12_PC
    0011Порт D (PD12)AFIO_EXTICR4_EXTI12_PD
    0100Порт E (PE12)AFIO_EXTICR4_EXTI12_PE
    0101Порт F (PF12)AFIO_EXTICR4_EXTI12_PF
    0110Порт G (PG12)AFIO_EXTICR4_EXTI12_PG

AFIO_MAPR2 — переназначение функций, регистр 2

Смещение 0x1C, адрес 0x4001 001C, 32 бит, после сброса 0x0000 0000. В коде: AFIO->MAPR2.

31302928272625242322212019181716
—
1514131211109876543210
—FSMC_NADV_REMAPTIM14_REMAPTIM13_REMAPTIM11_REMAPTIM10_REMAPTIM9_REMAP—
  • FSMC_NADV_REMAP (бит 10) — Отключение сигнала FSMC_NADV (только у STM32F101xE/xG, STM32F103xE/xG).
    FSMC_NADV_REMAPЗначение
    0Сигнал NADV выведен (по умолчанию)
    1NADV не используется, вывод свободен
  • TIM14_REMAP (бит 9) — Переназначение канала TIM14 (только у STM32F101xG, STM32F103xG).
    TIM14_REMAPЗначение
    0CH1 — PA7
    1CH1 — PF9
  • TIM13_REMAP (бит 8) — Переназначение канала TIM13 (только у STM32F101xG, STM32F103xG).
    TIM13_REMAPЗначение
    0CH1 — PA6
    1CH1 — PF8
  • TIM11_REMAP (бит 7) — Переназначение канала TIM11 (только у STM32F101xG, STM32F103xG).
    TIM11_REMAPЗначение
    0CH1 — PB9
    1CH1 — PF7
  • TIM10_REMAP (бит 6) — Переназначение канала TIM10 (только у STM32F101xG, STM32F103xG).
    TIM10_REMAPЗначение
    0CH1 — PB8
    1CH1 — PF6
  • TIM9_REMAP (бит 5) — Переназначение каналов TIM9 (только у STM32F101xG, STM32F103xG).
    TIM9_REMAPЗначение
    0CH1 — PA2, CH2 — PA3
    1CH1 — PE5, CH2 — PE6

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

Как освободить выводы PA15, PB3 и PB4, занятые JTAG?

Запишите в поле SWJ_CFG регистра AFIO_MAPR значение 010: JTAG выключается, а SWD (PA13, PA14) остаётся, так что отладчик ST-Link продолжит работать. Значение 100 отключает и SWD — после этого подключиться отладчиком можно только удерживая сброс. Биты SWJ_CFG только для записи: при чтении значение не определено, поэтому меняйте их записью всего регистра с остальными битами.

Как перенести USART1 на PB6 и PB7?

Включите тактирование AFIO и установите бит USART1_REMAP в AFIO_MAPR: по RM0008 TX переходит с PA9 на PB6, RX — с PA10 на PB7.

Источники

  1. STMicroelectronics. RM0008: Reference manual (Rev 21) — раздел 9.4: описание регистров, назначение полей и значения после сброса
  2. STMicroelectronics. cmsis-device-f1 v4.3.5: заголовки CMSIS stm32f101x6.h, stm32f101xb.h, stm32f101xe.h, stm32f101xg.h, stm32f102x6.h, stm32f102xb.h, stm32f103x6.h, stm32f103xb.h, stm32f103xe.h, stm32f103xg.h, stm32f105xc.h, stm32f107xc.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0

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

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

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