【STM32 HAL库】中断原理与CubeMX配置

前言

本文为笔者学习中断知识的总结与复盘,基于keysking的视频,若文章有误,欢迎大家指正

中断理论

中断概述

是什么
顾名思义,中断就是在执行当下任务时,打断正在进行的任务,先执行更紧急的任务,完成后再恢复原来任务的进程
在这里插入图片描述

外部中断EXTI本质
GPIO_EXTIx外部中断模式实际上就是GPIO_Input的一个拓展。EXTI = Input + 检测引脚外部电平变化 + 中断函数

中断类型
在这里插入图片描述

我们这里只讨论外部中断(EXTI),也即检测GPIO口电平变化的中断
内部中断先不做讨论,因为内部中断的原理与外部中断类似,而且在相应外设的学习中会顺带着学习其对应中断

中断结构与原理

在这里插入图片描述
信号输入到I/O口 --> GPIO内部输入电路 --> 外部中断/事件控制器 --> NVIC嵌套向量中断控制器 --> 控制中断向量表 --> 中断服务函数

中断应用

CubeMX配置

GPIO_EXTI

在这里插入图片描述
补充说明
GPIO mode
根据需求配置
外部中断模式:立即响应外部信号
外部事件模式:稍后相应外部信号
PS:
下降沿触发就是引脚外部电平 高 --> 低 触发中断
上升沿触发和上升/下降沿均触发同理

GPIO Pull-up/Pull-down
根据内部电路需求配置,比如说外部KEY按键模块缺少上拉电阻,那么就可以配置其为内部上拉,从而满足电路功能需求

NVIC

在这里插入图片描述
PS:
当在中断服务函数中使用Delay延时函数时,System service的优先级应该高于配置中断优先级,以保证在中断服务函数中不会卡死

中断服务函数

在这里插入图片描述
位置:User/Core --> stm32f1xx_it.c --> 中断服务函数

中断服务函数与中断回调函数
中断服务函数:NVIC控制中断向量表直接进入中断服务函数(如EXTI0 IROHandler),为硬中断,要求立即响应
中断回调函数:在中断服务函数中调用的模块化的逻辑函数,为软中断,可以稍后相应

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值