文章分两部分,一是EXTI的详解,二是常见问题汇总;文章长,但是都是重点精华,往有帮助~
(参考的是火哥的STM32有关EXTI的文档)
一、EXTI功能框图
- EXTI 可分为两大部分功能,一个是产生中断,另一个是产生事件;
- 红色虚线指示的电路流程。它是一个产生中断的线路,最终信号流入到 NVIC 控制器内。
- 编号 1 是输入线,EXTI 控制器有 19 个中断/事件输入线,这些输入线可以通过寄存器设置为任意一个 GPIO,也可以是一些外设的事件。输入线一般是存在电平变化的信号。
- 编号 2 是一个边沿检测电路,它会根据上升沿触发选择寄存器(EXTI_RTSR)和下降沿触发选择寄存器(EXTI_FTSR)对应位的设置来控制信号触发。边沿检测电路以输入线作为信号输入端,如果检测到有边沿跳变就输出有效信号 1 给编号 3 电路,否则输出无效信号0。而 EXTI_RTSR 和 EXTI_FTSR 两个寄存器可以控制需要检测哪些类型的电平跳变过程,可以是只有上升沿触发、只有下降沿触发或者上升沿和下降沿都触发;
- 编号 3 电路实际就是一个或门电路,它一个输入来自编号 2 电路ÿ