STM32 通过按键方式触发中断的处理流程

需求:通过按键方式触发中断

中断处理流程

整体流程图片

首先中断处理源有三个方向

方向:1:内核其他控件(灰色的图2)

  • 有可以配置的,配置优先级

  • 也有固定的,优先级最高,数越小优先级越高

  • 2:片上外设:位于CPU外部,STM32芯片内部(白色的图3)

    3:片上外设,EXTI专门管理外部中断

    ​​​​​​​

    通过需求是按键,所以需要捕获外面传过来的上升沿或者下降沿,外面传过来的上升沿或者下降沿所能触发的中断我们称为外部中断(STM32芯片的外部)

    第一步外部引脚通过AFIO(复用IO)

    AFIO整个STM32 的开关网络(内部就是一大堆开关),STM32 的引脚有很多可以做通用模块也可以做复用模块通用模块引脚连接GPIO复用模块引脚连接AFIO,而复用模块的选择就是AFIO来控制。总的来说就是如果引脚要用复用功能可以通过AFIO修改控制权进行连接。

    在AFIO_EXTICR1寄存器

    它用过复用器,使不同组的同一编号的IO引脚,它们只能同时有一个时外部中断。7选1。

    第二步AFIO会将外部中断的引脚接入EXTI中

    EXTI内部:首先:经过边沿检测电路,上升/下降沿触发选择寄存器,也可以同时都配1。最后会产生脉冲

    中断机制:中断CPU执行main函数

    事件机制:完全基于硬件,不给CPU而是给其他片上外设。

    当EXTI信号,到达EXTI硬件,RXTI会对其再进行处理成7根线然后才到NVIC

    在stm32中中断服务函数,必须要写exti…,这是约定好的,只有EXTI0~4有独立的中断服务函数。在

    EXTI5~9是共享函数

    EXTI10-15是共享函数

    void exti0_func(){

    }

    第三步最后连接到NVIC上

    在NVIC中嵌套或者排队

    NVIC会给每个中断4个bit来表示优先级一共16种

    NVIC里面有一个嵌套优先级和排队优先级的划分线,可以设置线让左边两位为嵌套优先级,右边两位为排队优先级,划分的话,先比嵌套然后比排队。

    作者:山君技研轩

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32 通过按键方式触发中断的处理流程

    发表回复