Software interrupt event register (EXTI_SWIER))

Регистр программного вызова прерывания

Смещение (Address offset): 0x10

Reset value: 0x0000'0000

3130292827262524
Reserved
---
00000000
2322212019181716
Reserved SWIER19 SWIER18 SWIER17 SWIER16
---rwrwrwrw
00000000


15141312111098
SWIER15 SWIER14 SWIER13 SWIER12 SWIER11 SWIER10 SWIER9 SWIER8
rwrwrwrwrwrwrwrw
00000000
76543210
SWIER7 SWIER6 SWIER5 SWIER4 SWIER3 SWIER2 SWIER1 SWIER0
rwrwrwrwrwrwrwrw
00000000


Bits 31:20
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bits 19:0
SWIERx
Software interrupt on line X
Программное прерывание на линии X

Если в регистре EXTI_IMR разрешено прерывание на линии, то переключение бита с "0" на "1" установит соответствующий флаг в регистре EXTI_PR и вызовет запрос на прерывание.

Бит очищается при очистке соответствующего флага в регистре EXTI_PR (при записи в него "1").

Бит 19 используется только в CL-устройствах (Connectivity Line).



//- stm32f10x.h

/******************  Bit definition for EXTI_SWIER register  ******************/

#define  EXTI_SWIER_SWIER0        ((uint32_t)0x00000001)        /* Software Interrupt on line 0 */
#define  EXTI_SWIER_SWIER1        ((uint32_t)0x00000002)        /* Software Interrupt on line 1 */
#define  EXTI_SWIER_SWIER2        ((uint32_t)0x00000004)        /* Software Interrupt on line 2 */

#define  EXTI_SWIER_SWIER3        ((uint32_t)0x00000008)        /* Software Interrupt on line 3 */
#define  EXTI_SWIER_SWIER4        ((uint32_t)0x00000010)        /* Software Interrupt on line 4 */
#define  EXTI_SWIER_SWIER5        ((uint32_t)0x00000020)        /* Software Interrupt on line 5 */

#define  EXTI_SWIER_SWIER6        ((uint32_t)0x00000040)        /* Software Interrupt on line 6 */
#define  EXTI_SWIER_SWIER7        ((uint32_t)0x00000080)        /* Software Interrupt on line 7 */
#define  EXTI_SWIER_SWIER8        ((uint32_t)0x00000100)        /* Software Interrupt on line 8 */

#define  EXTI_SWIER_SWIER9        ((uint32_t)0x00000200)        /* Software Interrupt on line 9 */
#define  EXTI_SWIER_SWIER10       ((uint32_t)0x00000400)        /* Software Interrupt on line 10 */
#define  EXTI_SWIER_SWIER11       ((uint32_t)0x00000800)        /* Software Interrupt on line 11 */

#define  EXTI_SWIER_SWIER12       ((uint32_t)0x00001000)        /* Software Interrupt on line 12 */
#define  EXTI_SWIER_SWIER13       ((uint32_t)0x00002000)        /* Software Interrupt on line 13 */
#define  EXTI_SWIER_SWIER14       ((uint32_t)0x00004000)        /* Software Interrupt on line 14 */

#define  EXTI_SWIER_SWIER15       ((uint32_t)0x00008000)        /* Software Interrupt on line 15 */
#define  EXTI_SWIER_SWIER16       ((uint32_t)0x00010000)        /* Software Interrupt on line 16 */
#define  EXTI_SWIER_SWIER17       ((uint32_t)0x00020000)        /* Software Interrupt on line 17 */

#define  EXTI_SWIER_SWIER18       ((uint32_t)0x00040000)        /* Software Interrupt on line 18 */
#define  EXTI_SWIER_SWIER19       ((uint32_t)0x00080000)        /* Software Interrupt on line 19 */