EXTI 外部中断寄存器 | |||||||||||||||||||||||
EXTI_IMR | 中断屏蔽寄存器 | ||||||||||||||||||||||
1:开放来自线x上的中断请求 | 保留 | MR19 | MR18 | MR17 | MR16 | ||||||||||||||||||
0:屏蔽来自线x上的中断请求 | MR15 | MR14 | MR13 | MR12 | MR11 | MR10 | MR9 | MR8 | MR7 | MR6 | MR5 | MR4 | MR3 | MR2 | MR1 | MR0 | |||||||
EXTI_EMR | 事件屏蔽寄存器 | ||||||||||||||||||||||
1:开放来自线x上的事件请求 | 保留 | MR19 | MR18 | MR17 | MR16 | ||||||||||||||||||
0:屏蔽来自线x上的事件请求 | MR15 | MR14 | MR13 | MR12 | MR11 | MR10 | MR9 | MR8 | MR7 | MR6 | MR5 | MR4 | MR3 | MR2 | MR1 | MR0 | |||||||
EXTI_RTSR | 上升沿触发选择寄存器 | ||||||||||||||||||||||
1:允许输入线x上的上升沿触发(中断和事件) | 保留 | TR19 | TR18 | TR17 | TR16 | ||||||||||||||||||
0:禁止输入线x上的上升沿触发(中断和事件) | TR15 | TR14 | TR13 | TR12 | TR11 | TR10 | TR9 | TR8 | TR7 | TR6 | TR5 | TR4 | TR3 | TR2 | TR1 | TR0 | |||||||
EXTI_FTSR | 下降沿触发选择寄存器 | ||||||||||||||||||||||
1:允许输入线x上的下降沿触发(中断和事件) | 保留 | TR19 | TR18 | TR17 | TR16 | ||||||||||||||||||
0:禁止输入线x上的下降沿触发(中断和事件) | TR15 | TR14 | TR13 | TR12 | TR11 | TR10 | TR9 | TR8 | TR7 | TR6 | TR5 | TR4 | TR3 | TR2 | TR1 | TR0 | |||||||
EXTI_SWIER | 软件中断事件寄存器 | ||||||||||||||||||||||
0>1:将设置EXTI_PR中相应的挂起位;如果在EXTI_IMR | |||||||||||||||||||||||
和EXTI_EMR中允许产生该中断,则此时将产生一个中断。 | 保留 | SWIER19 | SWIER18 | SWIER17 | SWIER16 | ||||||||||||||||||
通过清除EXTI_PR的对应位(写入’1’),可以清除该位为0。 | SWIER15 | SWIER14 | SWIER13 | SWIER12 | SWIER11 | SWIER10 | SWIER9 | SWIER8 | SWIER7 | SWIER6 | SWIER5 | SWIER4 | SWIER3 | SWIER2 | SWIER1 | SWIER0 | |||||||
EXTI_PR | 挂起寄存器(rc w1 中断标志清除) | ||||||||||||||||||||||
0:没有发生触发请求 | |||||||||||||||||||||||
1:发生了选择的触发请求 | |||||||||||||||||||||||
当在外部中断线上发生了选择的边沿事件, | |||||||||||||||||||||||
该位被置’1’。在该位中写入’1’可以清除它, | 保留 | PR19 | PR18 | PR17 | PR16 | ||||||||||||||||||
也可以通过改变边沿检测的极性清除 | PR15 | PR14 | PR13 | PR12 | PR11 | PR10 | PR9 | PR8 | PR7 | PR6 | PR5 | PR4 | PR3 | PR2 | PR1 | PR0 | |||||||
基本配置方式 | |||||||||||||||||||||||
1 | 使能io复用时钟 | RCC->APB2ENR|=0x01; | |||||||||||||||||||||
2 | 端口映射 | AFIO->EXTICR[EXTADDR]|=GPIOx<<EXTOFFSET; | |||||||||||||||||||||
3 | 开启中断 | EXTI->IMR|=1<<BITx; | |||||||||||||||||||||
4 | 屏蔽line BITx上的事件(默认屏蔽) | //EXTI->EMR|=1<<BITx; | |||||||||||||||||||||
5 | 选择触发方式:上升沿/下降沿/任意电平(不做设置) | EXTI->RTSR|=1<<BITx;EXTI->FTSR|=1<<BITx; | |||||||||||||||||||||
端口映射寄存器 | AFIO->EXTICR[1] | 对应IO口:0、1、2、3 | 0000: PA[x]引脚 | 0100: PE[x]引脚 | |||||||||||||||||||
AFIO->EXTICR[2] | 对应IO口:4、5、6、7 | 0001: PB[x]引脚 | 0101: PF[x]引脚 | ||||||||||||||||||||
AFIO->EXTICR[3] | 对应IO口:8、9、10、11 | 0010: PC[x]引脚 | 0110: PG[x]引脚 | ||||||||||||||||||||
AFIO->EXTICR[4] | 对应IO口:12、13、14、15 | 0011: PD[x]引脚 |
STM32 EXTI 外部中断寄存器学习笔记
于 2018-09-08 22:23:05 首次发布