STM32 中断流程介绍

    STM32可以产生中断的事件多种多样,比如:定时器时间结束、串口接收到数据、某个GPIO检测到电平变化等等等等。

1、STM32 gpio 中断处理流程介绍

    1、从引脚进入的高低电平首先由输入驱动器处理,如下图
在这里插入图片描述
    2、经过输入驱动器处理后的信号会进入边沿检测电路

在这里插入图片描述
    3、边沿检测电路会按照我们配置的上升沿还是下降沿,满足之后会输入1给请求挂起寄存器。
    4、请求挂起寄存器会经过一个与门,如果我们开启了此中断,信号1就会传送给NVIC中断控制器。
    5、最后会进入中断向量表,查找对应的中断函数,执行。执行完后记得清除请求中断挂起寄存器(这一步CubeMX已经帮我们做好了),防止NVIC误导再次执行相关函数。
在这里插入图片描述

2、优先级

    1、stm32为每个中断向量准备了4个二进制位来存储中断优先级信息。可以自由分配几位用来设置抢占优先级,几位用来设置响应优先级。CubeIDE在如下位置配置。
在这里插入图片描述
    2、优先级数字越小,代表越优先。
    3、当两中断同时发生时,先比较抢占优先级相同的话再比较响应优先级。如果还相同,就按照中断向量表中的顺序执行。

3、测试中断

    将按键引脚设置为中断模式,当按键按下中断触发,执行中断函数,完成小灯亮灭。
在这里插入图片描述

在这里插入图片描述

3.1、按键中断配置

在这里插入图片描述
    点击左侧NVIC,勾选上EXTI 15:10中断向量。
在这里插入图片描述

3.2、coding编写中断服务函数

    中断函数进入,延时10ms,再次确认按键是否按下,如果按下则翻转小灯电平。
目的是为了消抖。
在这里插入图片描述

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值