嵌入式学习——stm32(2.1)中断基础

目录

1.中断简介

2.嵌套向量中断控制器(NVIC)

3. 复用IO端口(AFIO)

4.外部中断(EXTI)

5.总结


1.中断简介:

       中断:在主程序运行过程当中,接到特定的中断触发条件(中断源),就会使CPU停止当前的工作,转而先去中断服务程序,在做完后返回主程序继续执行 。

 

       中断优先级:如果同时有多个中断触发,为了防止混乱,会根据中断优先级一步一步去完成所有中断服务程序。优先级包括响应优先级和抢占优先级,响应优先级决定谁先进入中断,而抢占优先级决定当前中断是否能被另一个同时挂起的中断抢占。

        中断嵌套:当一个中断正在进行时,如果触发了一个中断优先级高于此中断的中断,会将此中断挂起,去执行更高等级的中断。

        中断的进行过程:                 

                1.中断当前程序并保护断点

                2.转入中断服务入口

                3.保护现场

                4.执行中断服务程序

                5.恢复现场

                6.中断返回

2.嵌套向量中断控制器(NVIC):

        前面说到过,中断是由优先级的,NVIC就是用于为中断分组,从而分配抢占优先级和响应优先级的。

        在STM32中,中断优先级控制字节(PRI_n)中有八位,但只有高四位有效,同时这四位要分别分配给响应优先级和抢占优先级,所以可以把这四位按照需要分配给响应优先级和抢占优先级。 

优先级组别响应优先级抢占优先级
NVIC_PriorityGroup_04位/0~15级0位/0级
NVIC_PriorityGroup_13位/0~7级1位/0~1级
NVIC_PriorityGroup_22位/0~3级2位/0~3级
NVIC_PriorityGroup_31位/0~1级3位/0~7级
NVIC_PriorityGroup_44位/0~15级0位/0级

        通过设置嵌套中断向量,完成对中断的优先级控制

3. 复用IO端口(AFIO):

        AFIO用来实现引脚的复用,在STM32中,供IO口使用的中断只有16个,但IO口的总数远远大于16,这时候就用AFIO把引脚标号相同的引脚的中断复用到一个中断线上

        也就是说相同标号的引脚不能使用独立的中断,例如不可以同时使用PB0和PA0的中断

 

4.外部中断(EXTI):

        EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO 口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序

        

        通过边沿检测电路来检验IO口的电平信号

        触发方式:上升沿/下降沿/上升下降沿/软件触发

        GPIO口:所有的IO口,但相同的Pin不能同时触发中断

        触发响应方式:中断响应/事件响应

        中断服务函数:在触发中断后,会进入对应的中断服务函数执行中断内容

 

         通过在stm32的启动文件中可以看到,一共有7个中断服务函数,其中Pin5~9和Pin10~15的中断都被集成在一个中断函数里

5.总结:

        在stm32中使用外部中断我们要依次配置GPIO->AFIO->EXTI->NVIC,将这四步配置完以后就可以顺利的使用外部中断啦,下一小节会详细说明这四步的配置方法。

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值