当前位置: 首页 > news >正文

STM32 EXTI外部中断

本文代码使用 HAL 库。

文章目录

  • 前言
  • 一、什么是外部中断?
  • 二、外部中断中断线
  • 三、STM32F103的引脚复用
  • 四、相关函数:
  • 总结


前言


一、什么是外部中断?

外部中断 是单片机实时地处理外部事件的一种内部机制。当某种外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后.又返回被中断的程序处,继续执行下去.

外部中断 是指由 外部设备 发出的 中断请求 ,如键盘、鼠标、计时器、网络数据等。外部中断可以提高系统的效率,使系统能够有效地处理外部设备发出的中断请求,从而改善系统的性能。

二、外部中断中断线

外部中断共有 20 条中断线。

从下图可以看出,PA0、PB0…PG0 共用的 EXTI0 中断线,PA1、PB1…PG1共用的 EXTI1 中断线,也就是 编程里面的(如下图库文件),对应 16 个中断线。

112 个引脚被分成了16个 外部中断线,不同组的同一个引脚号连接到同一个外部中断线上
在这里插入图片描述

后面三个是专用的中断线:

  • 外部中断线 EXTI16 连接到 PVD 输出.
  • 外部中断线 EXTI17 连接到 RTC 警告事件.
  • 外部中断线 EXTI18 连接到 USB 唤醒事件.
  • 外部中断线 EXTI19 连接到 ETH 唤醒事件.(只有在内部有ETH模块的设备才会有这条线)

三、STM32F103的引脚复用

GPIO 的中断是以组位一个单位的,同组间的外部中断同一时间只能使用一个。比如说,PA0,PB0,PC0,PD0,PE0,PF0,PG0这些为1组,如果我们使用PA0作为外部中断源,那么别的就不能够再使用了,在此情况下,我们只能使用类似于PB1,PC2这种末端序号不同的外部中断源。

在这里插入图片描述

AFIO_EXTICR1 为例 :

在这里插入图片描述
① AFIO_EXTICR1有32位,只有低16位可以设置值,高16位是保留位。
②它可以配置4跟外部中断线,每4位控制一根外部中断线.
③ 对于某一根外部中断线,同一时刻只能选择一组GPIO的引脚作为外部中断输入引脚.

四、相关函数:

  1. 设置外部中断的优先级:
HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority);
  1. 使能外部中断
HAL_NVIC_EnableIRQ(IRQn_Type IRQn);
  1. 外部中断服务函数
void EXTI1_IRQHandler(void);
  1. 回调函数
HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);

总结

下一篇文章 介绍 OLED 的使用。

http://www.lryc.cn/news/25589.html

相关文章:

  • Mapper代理开发——书接MaBatis的简单使用
  • 实体对象说明
  • JAVA中加密与解密
  • 改进YOLO系列 | ICLR2022 | OMNI-DIMENSIONAL DYNAMIC CONVOLUTION: 全维动态卷积
  • 信息收集之Github搜索语法
  • 【案例教程】拉格朗日粒子扩散模式FLEXPART
  • 试题 算法训练 自行车停放
  • 泛型与Map接口
  • Unity Bug记录本
  • B. The Number of Products)厉害
  • 一起Talk Android吧(第五百一十二回:自定义Dialog)
  • GinVueAdmin源码分析3-整合MySQL
  • 大数据框架之Hadoop:MapReduce(三)MapReduce框架原理——MapReduce开发总结
  • requests---(4)发送post请求完成登录
  • Python抓取数据具体流程
  • 【Python学习笔记】第二十四节 Python 正则表达式
  • 数字逻辑基础:原码、反码、补码
  • 有限差分法-差商公式及其Matlab实现
  • 高校就业信息管理系统
  • 【Java|golang】2373. 矩阵中的局部最大值
  • 根据指定函数对DataFrame中各元素进行计算
  • 【蓝桥杯集训·每日一题】AcWing 3502. 不同路径数
  • Java - 数据结构,二叉树
  • 模拟QQ登录-课后程序(JAVA基础案例教程-黑马程序员编著-第十一章-课后作业)
  • 【壹】嵌入式系统硬件基础
  • 当参数调优无法解决kafka消息积压时可以这么做
  • Java线程池源码分析
  • 手撕八大排序(下)
  • SAP 详细解析SCC4
  • java异常分类和finally代码块中return语句的影响