10. Interrupts and events

Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers where the Flash memory density ranges between 16 and 32 Kbytes.

Medium-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers where the Flash memory density ranges between 64 and 128 Kbytes.

High-density devices are STM32F101xx and STM32F103xx microcontrollers where the Flash memory density ranges between 256 and 512 Kbytes.

XL-density devices are STM32F101xx and STM32F103xx microcontrollers where the Flash memory density ranges between 768 Kbytes and 1 Mbyte.

Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.

This section applies to the whole STM32F10xxx family, unless otherwise specified.

10.1 Nested vectored interrupt controller (NVIC)

Features

The NVIC and the processor core interface are closely coupled, which enables low latency interrupt processing and efficient processing of late arriving interrupts.

All interrupts including the core exceptions are managed by the NVIC. For more information on exceptions and NVIC programming, refer to STM32F10xxx Cortex ® -M3 programming manual (see Related documents on page 1 ).

10.1.1 SysTick calibration value register

The SysTick calibration value is set to 9000, which gives a reference time base of 1 ms with the SysTick clock set to 9 MHz (max HCLK/8).

10.1.2 Interrupt and exception vectors

Table 61 and Table 63 are the vector tables for connectivity line and other STM32F10xxx devices, respectively.

Table 61. Vector table for connectivity line devices

PositionPriorityType of priorityAcronymDescriptionAddress
----Reserved0x0000_0000
--3fixedResetReset0x0000_0004
--2fixedNMINon maskable interrupt. The RCC Clock Security System (CSS) is linked to the NMI vector.0x0000_0008
--1fixedHardFaultAll class of fault0x0000_000C
-0settableMemManageMemory management0x0000_0010
-1settableBusFaultPre-fetch fault, memory access fault0x0000_0014
-2settableUsageFaultUndefined instruction or illegal state0x0000_0018
----Reserved0x0000_001C - 0x0000_002B
-3settableSVCallSystem service call via SWI instruction0x0000_002C
-4settableDebug MonitorDebug Monitor0x0000_0030
----Reserved0x0000_0034
-5settablePendSVPendable request for system service0x0000_0038
-6settableSysTickSystem tick timer0x0000_003C
07settableWWDGWindow Watchdog interrupt0x0000_0040
18settablePVDPVD through EXTI Line detection interrupt0x0000_0044
29settableTAMPERTamper interrupt0x0000_0048
310settableRTCRTC global interrupt0x0000_004C
411settableFLASHFlash global interrupt0x0000_0050
512settableRCCRCC global interrupt0x0000_0054
613settableEXTI0EXTI Line0 interrupt0x0000_0058
714settableEXTI1EXTI Line1 interrupt0x0000_005C
815settableEXTI2EXTI Line2 interrupt0x0000_0060
916settableEXTI3EXTI Line3 interrupt0x0000_0064
1017settableEXTI4EXTI Line4 interrupt0x0000_0068

Table 61. Vector table for connectivity line devices (continued)

PositionPriorityType of priorityAcronymDescriptionAddress
1118settableDMA1_Channel1DMA1 Channel1 global interrupt0x0000_006C
1219settableDMA1_Channel2DMA1 Channel2 global interrupt0x0000_0070
1320settableDMA1_Channel3DMA1 Channel3 global interrupt0x0000_0074
1421settableDMA1_Channel4DMA1 Channel4 global interrupt0x0000_0078
1522settableDMA1_Channel5DMA1 Channel5 global interrupt0x0000_007C
1623settableDMA1_Channel6DMA1 Channel6 global interrupt0x0000_0080
1724settableDMA1_Channel7DMA1 Channel7 global interrupt0x0000_0084
1825settableADC1_2ADC1 and ADC2 global interrupt0x0000_0088
1926settableCAN1_TXCAN1 TX interrupts0x0000_008C
2027settableCAN1_RX0CAN1 RX0 interrupts0x0000_0090
2128settableCAN1_RX1CAN1 RX1 interrupt0x0000_0094
2229settableCAN1_SCECAN1 SCE interrupt0x0000_0098
2330settableEXTI9_5EXTI Line[9:5] interrupts0x0000_009C
2431settableTIM1_BRKTIM1 Break interrupt0x0000_00A0
2532settableTIM1_UPTIM1 Update interrupt0x0000_00A4
2633settableTIM1_TRG_COMTIM1 Trigger and Commutation interrupts0x0000_00A8
2734settableTIM1_CCTIM1 Capture Compare interrupt0x0000_00AC
2835settableTIM2TIM2 global interrupt0x0000_00B0
2936settableTIM3TIM3 global interrupt0x0000_00B4
3037settableTIM4TIM4 global interrupt0x0000_00B8
3138settableI2C1_EVI 2 C1 event interrupt0x0000_00BC
3239settableI2C1_ERI 2 C1 error interrupt0x0000_00C0
3340settableI2C2_EVI 2 C2 event interrupt0x0000_00C4
3441settableI2C2_ERI 2 C2 error interrupt0x0000_00C8
3542settableSPI1SPI1 global interrupt0x0000_00CC
3643settableSPI2SPI2 global interrupt0x0000_00D0
3744settableUSART1USART1 global interrupt0x0000_00D4
3845settableUSART2USART2 global interrupt0x0000_00D8
3946settableUSART3USART3 global interrupt0x0000_00DC

Table 61. Vector table for connectivity line devices (continued)

PositionPriorityType of priorityAcronymDescriptionAddress
4047settableEXTI15_10EXTI Line[15:10] interrupts0x0000_00E0
4148settableRTCAlarmRTC alarm through EXTI line interrupt0x0000_00E4
4249settableOTG_FS_WKUPUSB On-The-Go FS Wakeup through EXTI line interrupt0x0000_00E8
----Reserved0x0000_00EC - 0x0000_0104
5057settableTIM5TIM5 global interrupt0x0000_0108
5158settableSPI3SPI3 global interrupt0x0000_010C
5259settableUART4UART4 global interrupt0x0000_0110
5360settableUART5UART5 global interrupt0x0000_0114
5461settableTIM6TIM6 global interrupt0x0000_0118
5562settableTIM7TIM7 global interrupt0x0000_011C
5663settableDMA2_Channel1DMA2 Channel1 global interrupt0x0000_0120
5764settableDMA2_Channel2DMA2 Channel2 global interrupt0x0000_0124
5865settableDMA2_Channel3DMA2 Channel3 global interrupt0x0000_0128
5966settableDMA2_Channel4DMA2 Channel4 global interrupt0x0000_012C
6067settableDMA2_Channel5DMA2 Channel5 global interrupt0x0000_0130
6168settableETHEthernet global interrupt0x0000_0134
6269settableETH_WKUPEthernet Wakeup through EXTI line interrupt0x0000_0138
6370settableCAN2_TXCAN2 TX interrupts0x0000_013C
6471settableCAN2_RX0CAN2 RX0 interrupts0x0000_0140
6572settableCAN2_RX1CAN2 RX1 interrupt0x0000_0144
6673settableCAN2_SCECAN2 SCE interrupt0x0000_0148
6774settableOTG_FSUSB On The Go FS global interrupt0x0000_014C

Table 62. Vector table for XL-density devices

PositionPriorityType of priorityAcronymDescriptionAddress
----Reserved0x0000_0000
--3fixedResetReset0x0000_0004
--2fixedNMINonmaskable interrupt. The RCC Clock Security System (CSS) is linked to the NMI vector.0x0000_0008
--1fixedHardFaultAll class of fault0x0000_000C
-0settableMemManageMemory management0x0000_0010
-1settableBusFaultPrefetch fault, memory access fault0x0000_0014
-2settableUsageFaultUndefined instruction or illegal state0x0000_0018
----Reserved0x0000_001C - 0x0000_002B
-3settableSVCallSystem service call via SWI instruction0x0000_002C
-4settableDebug MonitorDebug monitor0x0000_0030
----Reserved0x0000_0034
-5settablePendSVPendable request for system service0x0000_0038
-6settableSysTickSystick timer0x0000_003C
07settableWWDGWindow watchdog interrupt0x0000_0040
18settablePVDPVD through EXTI Line detection interrupt0x0000_0044
29settableTAMPERTamper interrupt0x0000_0048
310settableRTCRTC global interrupt0x0000_004C
411settableFLASHFlash global interrupt0x0000_0050
512settableRCCRCC global interrupt0x0000_0054
613settableEXTI0EXTI Line0 interrupt0x0000_0058
714settableEXTI1EXTI Line1 interrupt0x0000_005C
815settableEXTI2EXTI Line2 interrupt0x0000_0060
916settableEXTI3EXTI Line3 interrupt0x0000_0064
1017settableEXTI4EXTI Line4 interrupt0x0000_0068
1118settableDMA1_Channel1DMA1 Channel1 global interrupt0x0000_006C
1219settableDMA1_Channel2DMA1 Channel2 global interrupt0x0000_0070
1320settableDMA1_Channel3DMA1 Channel3 global interrupt0x0000_0074

Table 62. Vector table for XL-density devices (continued)

PositionPriorityType of priorityAcronymDescriptionAddress
1421settableDMA1_Channel4DMA1 Channel4 global interrupt0x0000_0078
1522settableDMA1_Channel5DMA1 Channel5 global interrupt0x0000_007C
1623settableDMA1_Channel6DMA1 Channel6 global interrupt0x0000_0080
1724settableDMA1_Channel7DMA1 Channel7 global interrupt0x0000_0084
1825settableADC1_2ADC1 and ADC2 global interrupt0x0000_0088
1926settableUSB_HP_CAN_TXUSB high priority or CAN TX interrupts0x0000_008C
2027settableUSB_LP_CAN_RX0USB low priority or CAN RX0 interrupts0x0000_0090
2128settableCAN_RX1CAN RX1 interrupt0x0000_0094
2229settableCAN_SCECAN SCE interrupt0x0000_0098
2330settableEXTI9_5EXTI Line[9:5] interrupts0x0000_009C
2431settableTIM1_BRK_TIM9TIM1 Break interrupt and TIM9 global interrupt0x0000_00A0
2532settableTIM1_UP_TIM10TIM1 Update interrupt and TIM10 global interrupt0x0000_00A4
2633settableTIM1_TRG_COM_TIM11TIM1 Trigger and Commutation interrupts and TIM11 global interrupt0x0000_00A8
2734settableTIM1_CCTIM1 Capture Compare interrupt0x0000_00AC
2835settableTIM2TIM2 global interrupt0x0000_00B0
2936settableTIM3TIM3 global interrupt0x0000_00B4
3037settableTIM4TIM4 global interrupt0x0000_00B8
3138settableI2C1_EVI2C1 event interrupt0x0000_00BC
3239settableI2C1_ERI2C1 error interrupt0x0000_00C0
3340settableI2C2_EVI2C2 event interrupt0x0000_00C4
3441settableI2C2_ERI2C2 error interrupt0x0000_00C8
3542settableSPI1SPI1 global interrupt0x0000_00CC
3643settableSPI2SPI2 global interrupt0x0000_00D0
3744settableUSART1USART1 global interrupt0x0000_00D4
3845settableUSART2USART2 global interrupt0x0000_00D8
3946settableUSART3USART3 global interrupt0x0000_00DC
4047settableEXTI15_10EXTI Line[15:10] interrupts0x0000_00E0

Table 62. Vector table for XL-density devices (continued)

PositionPriorityType of priorityAcronymDescriptionAddress
4148settableRTCAlarmRTC alarm through EXTI line interrupt0x0000_00E4
4249settableUSBWakeUpUSB wakeup from suspend through EXTI line interrupt0x0000_00E8
4350settableTIM8_BRK_TIM12TIM8 Break interrupt and TIM12 global interrupt0x0000_00EC
4451settableTIM8_UP_TIM13TIM8 Update interrupt and TIM13 global interrupt0x0000_00F0
4552settableTIM8_TRG_COM_TIM14TIM8 Trigger and Commutation interrupts and TIM14 global interrupt0x0000_00F4
4653settableTIM8_CCTIM8 Capture Compare interrupt0x0000_00F8
4754settableADC3ADC3 global interrupt0x0000_00FC
4855settableFSMCFSMC global interrupt0x0000_0100
4956settableSDIOSDIO global interrupt0x0000_0104
5057settableTIM5TIM5 global interrupt0x0000_0108
5158settableSPI3SPI3 global interrupt0x0000_010C
5259settableUART4UART4 global interrupt0x0000_0110
5360settableUART5UART5 global interrupt0x0000_0114
5461settableTIM6TIM6 global interrupt0x0000_0118
5562settableTIM7TIM7 global interrupt0x0000_011C
5663settableDMA2_Channel1DMA2 Channel1 global interrupt0x0000_0120
5764settableDMA2_Channel2DMA2 Channel2 global interrupt0x0000_0124
5865settableDMA2_Channel3DMA2 Channel3 global interrupt0x0000_0128
5966settableDMA2_Channel4_5DMA2 Channel4 and DMA2 Channel5 global interrupts0x0000_012C

Table 63. Vector table for other STM32F10xxx devices

PositionPriorityType of priorityAcronymDescriptionAddress
----Reserved0x0000_0000
--3fixedResetReset0x0000_0004
--2fixedNMINon maskable interrupt. The RCC Clock Security System (CSS) is linked to the NMI vector.0x0000_0008
--1fixedHardFaultAll class of fault0x0000_000C
-0settableMemManageMemory management0x0000_0010
-1settableBusFaultPrefetch fault, memory access fault0x0000_0014
-2settableUsageFaultUndefined instruction or illegal state0x0000_0018
----Reserved0x0000_001C - 0x0000_002B
-3settableSVCallSystem service call via SWI instruction0x0000_002C
-4settableDebug MonitorDebug Monitor0x0000_0030
----Reserved0x0000_0034
-5settablePendSVPendable request for system service0x0000_0038
-6settableSysTickSystem tick timer0x0000_003C
07settableWWDGWindow watchdog interrupt0x0000_0040
18settablePVDPVD through EXTI Line detection interrupt0x0000_0044
29settableTAMPERTamper interrupt0x0000_0048
310settableRTCRTC global interrupt0x0000_004C
411settableFLASHFlash global interrupt0x0000_0050
512settableRCCRCC global interrupt0x0000_0054
613settableEXTI0EXTI Line0 interrupt0x0000_0058
714settableEXTI1EXTI Line1 interrupt0x0000_005C
815settableEXTI2EXTI Line2 interrupt0x0000_0060
916settableEXTI3EXTI Line3 interrupt0x0000_0064
1017settableEXTI4EXTI Line4 interrupt0x0000_0068
1118settableDMA1_Channel1DMA1 Channel1 global interrupt0x0000_006C
1219settableDMA1_Channel2DMA1 Channel2 global interrupt0x0000_0070
1320settableDMA1_Channel3DMA1 Channel3 global interrupt0x0000_0074

Table 63. Vector table for other STM32F10xxx devices (continued)

PositionPriorityType of priorityAcronymDescriptionAddress
1421settableDMA1_Channel4DMA1 Channel4 global interrupt0x0000_0078
1522settableDMA1_Channel5DMA1 Channel5 global interrupt0x0000_007C
1623settableDMA1_Channel6DMA1 Channel6 global interrupt0x0000_0080
1724settableDMA1_Channel7DMA1 Channel7 global interrupt0x0000_0084
1825settableADC1_2ADC1 and ADC2 global interrupt0x0000_0088
1926settableUSB_HP_CAN_TXUSB High Priority or CAN TX interrupts0x0000_008C
2027settableUSB_LP_CAN_RX0USB Low Priority or CAN RX0 interrupts0x0000_0090
2128settableCAN_RX1CAN RX1 interrupt0x0000_0094
2229settableCAN_SCECAN SCE interrupt0x0000_0098
2330settableEXTI9_5EXTI Line[9:5] interrupts0x0000_009C
2431settableTIM1_BRKTIM1 Break interrupt0x0000_00A0
2532settableTIM1_UPTIM1 Update interrupt0x0000_00A4
2633settableTIM1_TRG_COMTIM1 Trigger and Commutation interrupts0x0000_00A8
2734settableTIM1_CCTIM1 Capture Compare interrupt0x0000_00AC
2835settableTIM2TIM2 global interrupt0x0000_00B0
2936settableTIM3TIM3 global interrupt0x0000_00B4
3037settableTIM4TIM4 global interrupt0x0000_00B8
3138settableI2C1_EVI 2 C1 event interrupt0x0000_00BC
3239settableI2C1_ERI 2 C1 error interrupt0x0000_00C0
3340settableI2C2_EVI 2 C2 event interrupt0x0000_00C4
3441settableI2C2_ERI 2 C2 error interrupt0x0000_00C8
3542settableSPI1SPI1 global interrupt0x0000_00CC
3643settableSPI2SPI2 global interrupt0x0000_00D0
3744settableUSART1USART1 global interrupt0x0000_00D4
3845settableUSART2USART2 global interrupt0x0000_00D8
3946settableUSART3USART3 global interrupt0x0000_00DC
4047settableEXTI15_10EXTI Line[15:10] interrupts0x0000_00E0
4148settableRTCAlarmRTC alarm through EXTI line interrupt0x0000_00E4

Table 63. Vector table for other STM32F10xxx devices (continued)

PositionPriorityType of priorityAcronymDescriptionAddress
4249settableUSBWakeupUSB wakeup from suspend through EXTI line interrupt0x0000_00E8
4350settableTIM8_BRKTIM8 Break interrupt0x0000_00EC
4451settableTIM8_UPTIM8 Update interrupt0x0000_00F0
4552settableTIM8_TRG_COMTIM8 Trigger and Commutation interrupts0x0000_00F4
4653settableTIM8_CCTIM8 Capture Compare interrupt0x0000_00F8
4754settableADC3ADC3 global interrupt0x0000_00FC
4855settableFSMCFSMC global interrupt0x0000_0100
4956settableSDIOSDIO global interrupt0x0000_0104
5057settableTIM5TIM5 global interrupt0x0000_0108
5158settableSPI3SPI3 global interrupt0x0000_010C
5259settableUART4UART4 global interrupt0x0000_0110
5360settableUART5UART5 global interrupt0x0000_0114
5461settableTIM6TIM6 global interrupt0x0000_0118
5562settableTIM7TIM7 global interrupt0x0000_011C
5663settableDMA2_Channel1DMA2 Channel1 global interrupt0x0000_0120
5764settableDMA2_Channel2DMA2 Channel2 global interrupt0x0000_0124
5865settableDMA2_Channel3DMA2 Channel3 global interrupt0x0000_0128
5966settableDMA2_Channel4_5DMA2 Channel4 and DMA2 Channel5 global interrupts0x0000_012C

10.2 External interrupt/event controller (EXTI)

The external interrupt/event controller consists of up to 20 edge detectors in connectivity line devices, or 19 edge detectors in other devices for generating event/interrupt requests. Each input line can be independently configured to select the type (event or interrupt) and the corresponding trigger event (rising or falling or both). Each line can also be masked independently. A pending register maintains the status line of the interrupt requests.

10.2.1 Main features

The EXTI controller main features are the following:

10.2.2 Block diagram

The block diagram is shown in Figure 20 .

Figure 20. External interrupt/event controller block diagram

Block diagram of the External interrupt/event controller (EXTI).

The block diagram illustrates the internal architecture of the EXTI controller. At the top, an 'AMBA APBbus' is connected to a 'Peripheral interface' block. The 'Peripheral interface' also receives a 'PCLK2' clock signal. Below the interface, five registers are shown: 'Pending request register', 'Interrupt mask register', 'Software interrupt event register', 'Rising trigger selection register', and 'Falling trigger selection register'. Each register has a 19-bit wide connection to the 'Peripheral interface'. The 'Pending request register' and 'Interrupt mask register' are connected to a 19-bit wide AND gate. The output of this AND gate is connected to a 19-bit wide OR gate. The 'Software interrupt event register' is also connected to this OR gate. The output of the OR gate is connected to an 'Edge detect circuit' and a 'Pulse generator'. The 'Edge detect circuit' is connected to an 'Input Line'. The 'Pulse generator' output is connected to the 'To NVIC interrupt controller' output. The 'Event mask register' is connected to the 'Pulse generator' output. The 'Rising trigger selection register' and 'Falling trigger selection register' are connected to the 'Edge detect circuit'. The 'To NVIC interrupt controller' output is a 19-bit wide signal. The diagram is labeled 'MS19816V1' in the bottom right corner.

Block diagram of the External interrupt/event controller (EXTI).

10.2.3 Wakeup event management

The STM32F10xxx is able to handle external or internal events in order to wake up the core (WFE). The wakeup event can be generated either by:

In connectivity line devices, Ethernet wakeup events also have the WFE wakeup capability.

To use an external line as a wakeup event, refer to Section 10.2.4: Functional description .

10.2.4 Functional description

To generate the interrupt, the interrupt line should be configured and enabled. This is done by programming the two trigger registers with the desired edge detection and by enabling the interrupt request by writing a '1' to the corresponding bit in the interrupt mask register. When the selected edge occurs on the external interrupt line, an interrupt request is generated. The pending bit corresponding to the interrupt line is also set. This request is reset by writing a '1' in the pending register.

To generate the event, the event line should be configured and enabled. This is done by programming the two trigger registers with the desired edge detection and by enabling the event request by writing a '1' to the corresponding bit in the event mask register. When the selected edge occurs on the event line, an event pulse is generated. The pending bit corresponding to the event line is not set

An interrupt/event request can also be generated by software by writing a '1' in the software interrupt/event register.

Hardware interrupt selection

To configure the 20 lines as interrupt sources, use the following procedure:

Hardware event selection

To configure the 20 lines as event sources, use the following procedure:

Software interrupt/event selection

The 20 lines can be configured as software interrupt/event lines. The following is the procedure to generate a software interrupt.

10.2.5 External interrupt/event line mapping

The 112 GPIOs are connected to the 16 external interrupt/event lines in the following manner:

Figure 21. External interrupt/event GPIO mapping

Diagram showing the mapping of external interrupt/event lines (EXTI0, EXTI1, and EXTI15) to various GPIO pins (PA, PB, PC, PD, PE, PF, PG) via multiplexers controlled by AFIO_EXTICR registers.

The diagram illustrates the mapping of external interrupt/event lines to GPIO pins. It consists of three multiplexer blocks, each controlled by a specific register bit field:

A vertical dashed line between the EXTI1 and EXTI15 blocks indicates that the same mapping logic applies to the intermediate interrupt lines (EXTI2 through EXTI14).

Diagram showing the mapping of external interrupt/event lines (EXTI0, EXTI1, and EXTI15) to various GPIO pins (PA, PB, PC, PD, PE, PF, PG) via multiplexers controlled by AFIO_EXTICR registers.
  1. 1. To configure the AFIO_EXTICRx for the mapping of external interrupt/event lines onto GPIOs, the AFIO clock should first be enabled. Refer to Section 7.3.7: APB2 peripheral clock enable register (RCC_APB2ENR) for low-, medium-, high- and XL-density devices and, to Section 8.3.7: APB2 peripheral clock enable register (RCC_APB2ENR) for connectivity line devices.

The four other EXTI lines are connected as follows:

10.3 EXTI registers

Refer to Section 2.2 on page 45 for a list of abbreviations used in register descriptions.

The peripheral registers have to be accessed by words (32-bit).

10.3.1 Interrupt mask register (EXTI_IMR)

Address offset: 0x00

Reset value: 0x0000 0000

31302928272625242322212019181716
ReservedMR19MR18MR17MR16
rwrwrwrw
1514131211109876543210
MR15MR14MR13MR12MR11MR10MR9MR8MR7MR6MR5MR4MR3MR2MR1MR0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:20 Reserved, must be kept at reset value (0).

Bits 19:0 MRx : Interrupt Mask on line x

0: Interrupt request from Line x is masked

1: Interrupt request from Line x is not masked

Note: Bit 19 is used in connectivity line devices only and is reserved otherwise.

10.3.2 Event mask register (EXTI_EMR)

Address offset: 0x04

Reset value: 0x0000 0000

31302928272625242322212019181716
ReservedMR19MR18MR17MR16
rwrwrwrw
1514131211109876543210
MR15MR14MR13MR12MR11MR10MR9MR8MR7MR6MR5MR4MR3MR2MR1MR0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:20 Reserved, must be kept at reset value (0).

Bits 19:0 MRx : Event mask on line x

0: Event request from Line x is masked

1: Event request from Line x is not masked

Note: Bit 19 is used in connectivity line devices only and is reserved otherwise.

10.3.3 Rising trigger selection register (EXTI_RTSR)

Address offset: 0x08
Reset value: 0x0000 0000

31302928272625242322212019181716
ReservedTR19TR18TR17TR16
rwrwrwrw
1514131211109876543210
TR15TR14TR13TR12TR11TR10TR9TR8TR7TR6TR5TR4TR3TR2TR1TR0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:20 Reserved, must be kept at reset value (0).

Bits 19:0 TRx : Rising trigger event configuration bit of line x

0: Rising trigger disabled (for Event and Interrupt) for input line

1: Rising trigger enabled (for Event and Interrupt) for input line.

Note: Bit 19 is used in connectivity line devices only and is reserved otherwise.

Note: The external wakeup lines are edge triggered, no glitches must be generated on these lines. If a rising edge on external interrupt line occurs during writing of EXTI_RTSR register, the pending bit will not be set.
Rising and Falling edge triggers can be set for the same interrupt line. In this configuration, both generate a trigger condition.

10.3.4 Falling trigger selection register (EXTI_FTSR)

Address offset: 0x0C
Reset value: 0x0000 0000

31302928272625242322212019181716
ReservedTR19TR18TR17TR16
rwrwrwrw
1514131211109876543210
TR15TR14TR13TR12TR11TR10TR9TR8TR7TR6TR5TR4TR3TR2TR1TR0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:20 Reserved, must be kept at reset value (0).

Bits 19:0 TRx : Falling trigger event configuration bit of line x

0: Falling trigger disabled (for Event and Interrupt) for input line

1: Falling trigger enabled (for Event and Interrupt) for input line.

Note: Bit 19 used in connectivity line devices and is reserved otherwise.

Note: The external wakeup lines are edge triggered, no glitches must be generated on these lines. If a falling edge on external interrupt line occurs during writing of EXTI_FTSR register, the pending bit will not be set.
Rising and Falling edge triggers can be set for the same interrupt line. In this configuration, both generate a trigger condition.

10.3.5 Software interrupt event register (EXTI_SWIER)

Address offset: 0x10

Reset value: 0x0000 0000

31302928272625242322212019181716
ReservedSWIER
19
SWIER
18
SWIER
17
SWIER
16
rwrwrwrw
1514131211109876543210
SWIER
15
SWIER
14
SWIER
13
SWIER
12
SWIER
11
SWIER
10
SWIER
9
SWIER
8
SWIER
7
SWIER
6
SWIER
5
SWIER
4
SWIER
3
SWIER
2
SWIER
1
SWIER
0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:20 Reserved, must be kept at reset value (0).

Bits 19:0 SWIERx : Software interrupt on line x

If the interrupt is enabled on this line in the EXTI_IMR, writing a '1' to this bit when it is set to '0' sets the corresponding pending bit in EXTI_PR resulting in an interrupt request generation.

This bit is cleared by clearing the corresponding bit of EXTI_PR (by writing a 1 into the bit).

Note: Bit 19 used in connectivity line devices and is reserved otherwise.

10.3.6 Pending register (EXTI_PR)

Address offset: 0x14

Reset value: undefined

31302928272625242322212019181716
ReservedPR19PR18PR17PR16
rc_w1rc_w1rc_w1rc_w1
1514131211109876543210
PR15PR14PR13PR12PR11PR10PR9PR8PR7PR6PR5PR4PR3PR2PR1PR0
rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1

Bits 31:20 Reserved, must be kept at reset value (0).

Bits 19:0 PRx : Pending bit

0: No trigger request occurred

1: selected trigger request occurred

This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a '1' into the bit.

Note: Bit 19 is used in connectivity line devices only and is reserved otherwise.

10.3.7 EXTI register map

The following table gives the EXTI register map and the reset values. Bits 19 in all registers are used in connectivity line devices and reserved otherwise.

Table 64. External interrupt/event controller register map and reset values

OffsetRegister313029282726252423222120191817161514131211109876543210
0x00EXTI_IMRReservedMR[19:0]
Reset value00000000000000000000
0x04EXTI_EMRReservedMR[19:0]
Reset value0000000000000000000
0x08EXTI_RTSRReservedTR[19:0]
Reset value0000000000000000000
0x0CEXTI_FTSRReservedTR[19:0]
Reset value0000000000000000000
0x10EXTI_SWIERReservedSWIER[19:0]
Reset value0000000000000000000
0x14EXTI_PRReservedPR[19:0]
Reset value0000000000000000000

Refer to Table 3 on page 50 for the register boundary addresses.