STM32外部中断
2014-04-16 19:45
232 查看
文章转自:http://blog.sina.com.cn/s/blog_643e988c0100yhkj.html
STM32外部中断包括硬件中断、事件中断和软件中断。
总共有19个外部事件/中断要求的边缘检测器,各个事件之间相互独立;
每一个IO口都可以作为外部中断源,具有相同数值编号的IO口被分配为同一组,共用一条中断请求线
如图:
在NVIC定义过程中,EXTI0、EXTI1、EXTI2、EXTI3、EXTI4各自占用一个中断向量号,EXTI5~9一个中断向量号,EXTI10~15一个中断向量号。
PA1-PE1共用一段中断服务程序;
PA2-PE2共用一个中断向量号,对应同一个中断服务函数;
而EXTI5~9中的25个IO口和EXTI10~15中的25个IO口共用一段中断复位程序。
这就意味着对于内核来说,它自身能够区分PA1、PA2的中断,却不能区分PA1和PB1产生的中断;使用时必须加以区分。
寄存器:1、外部中断配置寄存器 AFIO_EXTxCR1------->用于选择输入中断源 Pin 0..3
AFIO_EXTxCR2------->用于选择输入中断源 Pin 0..7
AFIO_EXTxCR2------->用于选择输入中断源 Pin 8..11
AFIO_EXTxCR2------->用于选择输入中断源 Pin 12..15
(说明:5个端口PORTA..E,每个端口各有16位可供选择)
2、中断屏蔽寄存器 EXTI_IMR----------->屏蔽线上的中断请求 共19路
3、事件屏蔽寄存器 EXTI_EMR----------->屏蔽线上的事件 共19路
4、上升沿触发选择寄存器 EXTI_RTSR---------->设置相应线为上升沿触发 19位
5、下降沿触发选择寄存器 EXTI_FTSR---------->设置相应线为上升沿触发 19位
6、挂起寄存器 EXTI_PR------------>中断线上发生了选择的边沿事件时置1 19位
7、软件中断事件寄存器 EXTI_SWIER--------->写该位可以将EXTI_PR中相应的位值高,如果
EXTI_IMR或EXTI_EMR使能,则可以产生相应的中断
配置流程:中断在使用前必须对中断线进行配置并激活
1、配置相应的IO口为输入,浮空输入时一定要加上拉或者是下拉
2、开启IO口复用时钟,设置IO与中断线的映射关系---->AFIO_EXTxCR1
3、设置相应中断触发条件---------->EXTI_IMR、EXTI_RTSR、EXTI_FTSR
4、在NVIC中开启并使能中断,对中断分组进行配置
5、编写中断服务函数
STM32外部中断包括硬件中断、事件中断和软件中断。
总共有19个外部事件/中断要求的边缘检测器,各个事件之间相互独立;
每一个IO口都可以作为外部中断源,具有相同数值编号的IO口被分配为同一组,共用一条中断请求线
如图:
在NVIC定义过程中,EXTI0、EXTI1、EXTI2、EXTI3、EXTI4各自占用一个中断向量号,EXTI5~9一个中断向量号,EXTI10~15一个中断向量号。
PA1-PE1共用一段中断服务程序;
PA2-PE2共用一个中断向量号,对应同一个中断服务函数;
而EXTI5~9中的25个IO口和EXTI10~15中的25个IO口共用一段中断复位程序。
这就意味着对于内核来说,它自身能够区分PA1、PA2的中断,却不能区分PA1和PB1产生的中断;使用时必须加以区分。
寄存器:1、外部中断配置寄存器 AFIO_EXTxCR1------->用于选择输入中断源 Pin 0..3
AFIO_EXTxCR2------->用于选择输入中断源 Pin 0..7
AFIO_EXTxCR2------->用于选择输入中断源 Pin 8..11
AFIO_EXTxCR2------->用于选择输入中断源 Pin 12..15
(说明:5个端口PORTA..E,每个端口各有16位可供选择)
2、中断屏蔽寄存器 EXTI_IMR----------->屏蔽线上的中断请求 共19路
3、事件屏蔽寄存器 EXTI_EMR----------->屏蔽线上的事件 共19路
4、上升沿触发选择寄存器 EXTI_RTSR---------->设置相应线为上升沿触发 19位
5、下降沿触发选择寄存器 EXTI_FTSR---------->设置相应线为上升沿触发 19位
6、挂起寄存器 EXTI_PR------------>中断线上发生了选择的边沿事件时置1 19位
7、软件中断事件寄存器 EXTI_SWIER--------->写该位可以将EXTI_PR中相应的位值高,如果
EXTI_IMR或EXTI_EMR使能,则可以产生相应的中断
配置流程:中断在使用前必须对中断线进行配置并激活
1、配置相应的IO口为输入,浮空输入时一定要加上拉或者是下拉
2、开启IO口复用时钟,设置IO与中断线的映射关系---->AFIO_EXTxCR1
3、设置相应中断触发条件---------->EXTI_IMR、EXTI_RTSR、EXTI_FTSR
4、在NVIC中开启并使能中断,对中断分组进行配置
5、编写中断服务函数
相关文章推荐
- 第二课(1)_STM32外部中断
- stm32 外部中断的使用(含实例)
- STM32中EXTI(外部中断)和NVIC(嵌套向量中断)的关系
- 4、STM32 外部中断的使用
- STM32外部中断配置步骤
- STM32 外部GPIO中断配置
- STM32——EXTI外部中断:中断方式翻转LED灯
- 很有用的STM32外部中断
- STM32外部中断处理流程及注意事项
- STM32学习笔记:外部中断的使用
- STM32共用中断线的外部中断引脚的判断
- stm32 外部中断嵌套[操作寄存器+库函数]
- STM32 EXTI外部中断
- stm32 外部中断的使用(含实例)
- STM32之外部中断原理
- cortex_m3_stm32嵌入式学习笔记(四):外部中断实验
- STM32学习之外部中断
- STM32的外部中断配置
- 【不算奇葩的问题】stm32外部中断一直响应
- STM32 外部中断使用方法总结