上一节学会配置NVIC,以及NVIC分组后,这一节继续看中断的一部分,(芯片)外部中断/事件
一. 中断和事件
1. 先说什么是外部?指的是Air32F103芯片的外部,与之相对应的内部中断是例如定时器TIM,这个是芯片以内,内核以外的外设。
2. 中断和事件的区别是什么?
- 中断Interrupt:触发后会引起芯片内部的中断NVIC,进而调取中断函数执行
- 事件Event:触发后会在GPIO生成脉冲信号
因为中断和事件的不同控制线,所以后面会分别有与之对应的寄存器用来使能它们。
注意:EXTI在时钟APB2上!!!记得开时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
二. 外部中断/事件控制器 - EXTI - External interrupt/event controller)
有19个能产生事件/中断请求的边沿检测器。每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。每个输入线都可以独立地被屏蔽。挂起寄存器保持着状态线的中断请求。
中断/事件线EXTI | 输入源 |
EXTI0 | Px0 (x可为ABCDEFG) |
EXTI1 | Px1 (x可为ABCDEFG) |
EXTI2 | Px2 (x可为ABCDEFG) |
EXTI3 | Px3 (x可为ABCDEFG) |
EXTI4 | Px4 (x可为ABCDEFG) |
EXTI5 | Px5 (x可为ABCDEFG) |
EXTI6 | Px6 (x可为ABCDEFG) |
EXTI7 | Px7 (x可为ABCDEFG) |
EXTI8 | Px8 (x可为ABCDEFG) |