关注、星标公众号,不错过精彩内容
中断,在单片机中占有非常重要的地位。代码默认地从上向下执行,遇到条件或者其他语句,会按照指定的地方跳转。而在单片机执行代码的过程中,难免会有一些突发的情况需要处理,这样就会打断当前的代码,待处理完突发情况之后,程序会回到被打断的地方继续执行。 1 EXTI控制器 外部中断/事件控制器(EXTI)管理了控制器的 23 个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。外部信号进入经过1的边沿检测电路,检测是否符合(有2和3的上升沿和下降沿选择寄存器决定),产生信号,然后和4软件中断事件寄存器或值,(在这里也就说可以写入软件中断事件寄存器模拟中断和事件),之后产生信号一分为二,看5中断屏蔽寄存器和7事件屏蔽寄存器,如果中断和事件都没有屏蔽,首先会产生事件,进入脉冲发生器。其次,会进入6挂起寄存器,然后进入NVIC。
注意:
1、上面说,我们可以使用寄存器4软件模拟中断事件寄存器模式符合条件的信号进入,为什么不能用6寄存器呢?因为
寄存器是可读可清除的寄存器,通过写1清除。写0无效。所以不能使用
2、关于挂起寄存器,挂起就是,证明有了中断,会在触发中断。但是不会硬件清除。
只能软件清除,或者修改边沿极性的时候清除。如下
先说EXTI吧,
EXTI 控制器的主要特性:每个中断/事件线上都具有独立的触发和屏蔽
每个中断线都具有专用的状态位
支持多达23个软件事件/中断请求
检测脉冲宽度低于APB2 时钟宽度的外部信号
下图是ST207的框架图
下图为翻译版
从图中看出和外部中断有关的寄存器有:上升沿触发选择、下降沿触