外部中断介绍
EXTI(中断/事件控制器)包括 23 个相互独立的边沿检测电路并且能够向处理器内核产生中断
请求或唤醒事件。EXTI 有三种触发类型:上升沿触发、下降沿触发和任意沿触发。EXTI 中的
每一个边沿检测电路都可以独立配置和屏蔽。
一、中断配置触发源
在中断触发源配置中,要设置哪个引脚为外部中断,则用哪个触发源。
二、配置代码
1. 主函数配置程序
以PC6上升沿触发外部中断为例,代码如下(示例):
/* 使能并设置外部中断优先级 */
nvic_irq_enable(EXTI10_15_IRQn, 2U, 0U);
/* 将pin连接到外部中断线 */
syscfg_exti_line_config(EXTI_SOURCE_GPIOC, EXTI_SOURCE_PIN6);
/* 配置中断类型 */
exti_init(EXTI_6, EXTI_INTERRUPT, EXTI_TRIG_RISING);
exti_interrupt_flag_clear(EXTI_6);
2.中断处理部分
代码如下(示例):
//如果获得EXTI6线上有中断触发
if(exti_interrupt_flag_get(EXTI_6)==SET){
exti_interrupt_flag_clear(EXTI_6);
//清除中断标志,以接收下次中断
/*
...自己的逻辑代码
*/
}