STM32 EXTI外部中断

news2024/11/15 15:50:18

本文代码使用 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.coloradmin.cn/o/382862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

13 nuxt3学习(新建页面 内置组件 assets 路由)

新建页面 Nuxt项目中的页面是在 pages目录 下创建的 在pages目录创建的页面,Nuxt会根据该页面的目录结构和其文件名来自动生成对应的路由。页面路由也称为文件系统路由器(file system router),路由是Nuxt的核心功能之一 方式一…

DHTMLX Suite 8.0 重大发布,新增更多新主题、热图图表、辅助功能支持功能

DHTMLX Suite 是一个用于构建跨浏览器Web应用和移动应用的强大JavaScript UI库。DHTMLX UI 组件库允许您更快地构建跨平台、跨浏览器 Web 和移动应用程序。它包括一组丰富的即用式 HTML5 组件,这些组件可以轻松组合到单个应用程序界面中。 DHTMLX Spreadsheet正版试…

动态网站开发讲课笔记04:Servlet基础

文章目录零、本节学习目标一、Servlet基础(一)Servlet概述1、Servlet是什么2、Servlet容器3、Servlet应用程序的体系结构(二)Servlet的特点1、功能强大2、可移植3、性能高效4、安全性高5、可扩展(三)Servle…

数据结构刷新知识总结,为了与题目分开,特地在这里开一篇博客

文章目录二叉树、树、森林的转换二叉树的五个特性常用算法总结常用算法详解图的概念堆排序哈希查找二叉树、树、森林的转换 树转二叉树 二叉树转树 森林转二叉树 二叉树转森林 二叉树的五个特性 性质1:在二叉树的第i层上至多有2i-1个结点性质2:深度为…

Android动态获取权限(详细教程附代码)

Android动态获取权限概述动态获取权限具体实现layout布局代码回调函数onRequestPermissionsResult权限判断工具类清单文件方式一:懒汉式方式二:饿汉式概述 如果是android6.0以下的版本,只需要在manifest声明对应的权限即可。但是这样会大大降…

美颜sdk动态贴纸的实现流程

随着移动互联网时代的到来,各式各样的 APP层出不穷,从最初的微信、 QQ到如今的抖音、快手等等,再到如今的微博、小红书等等,各式各样的 APP不断涌现。从最开始简单的图片展示到视频聊天,再到现如今丰富多样的各种动态贴…

rip题解

1.查看文件保护机制 使用的是新版本的checksec 2.拖入IDA分析 查壳 是一个64文件,拖入64位IDA 这个文件就是我们要攻击的服务器中的一个进程的代码,进程就是一个正在运行的程序 分析敏感函数 打开字符串窗口 跟进,光标点在command&#x…

Linux: ARM GIC只中断CPU 0问题分析

文章目录1. 前言2. 分析背景3. 问题4. 分析4.1 ARM GIC 中断芯片简介4.1.1 中断类型和分布4.1.2 拓扑结构4.2 问题根因4.2.1 设置GIC SPI 中断CPU亲和性4.2.2 GIC初始化:缺省的CPU亲和性4.2.2.1 boot CPU亲和性初始化流程4.2.2.1 其它非 boot CPU亲和性初始化流程5.…

【微信小程序】-- 全局配置 -- window - 下拉刷新 上拉触底(十六)

💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…

模型实战(6)之Alex实现图像分类:模型原理+训练+预测(详细教程!)

Alex实现图像分类:模型原理+训练+预测 图像分类或者检索任务在浏览器中的搜索操作、爬虫搜图中应用较广,本文主要通过Alex模型实现猫狗分类,并且将可以复用的开源模型在文章中给出!!!数据集可以由此下载:Data本文将从以下内容做出讲述: 1.模型简介及环境搭建2.数据集准…

微纳制造期末复习

章节分为六个模块: 1. 微纳制造中的材料 2.光刻技术 3.微纳制造中使用的技术 4.刻蚀 5.沉积 7.微纳刻蚀 根据导电性区分材料:导体,半导体,绝缘体 晶体:长程有序 多晶:短程有序 非晶:无序…

八 SpringMVC【拦截器】登录验证

目录🚩一 SpringMVC拦截器✅ 1.配置文件✅2.登录验证代码(HandlerInterceptor)✅3.继承HandlerInterceptorAdapter(不建议使用)✅4.登录页面jsp✅5.主页面(操作页面)✅6.crud用户在访问页面时 只…

【算法】PatchMatch立体匹配算法_原理解析

目录 前言 原理解析 1.倾斜支持窗口(Slanted Support Windows) 什么是视差平面? 为什么视差和像素坐标点之间的关系可以解释为平面方程? 视差平面的通用参数方程和点加法向量方程 什么是倾斜支持窗口? 2.基于倾…

宏基因组鉴定病毒流程中需要的生物信息工具

谷禾健康 许多流行病的爆发都是病毒引起的,面对新的传染性基因组出现的最佳策略是及时识别,以便于在感染开始时立即实施相应措施。 目前可用的诊断测试仅限于检测新的病理因子。适用于同时检测存在的任何病原体的高通量方法可能比使用基于当前方法的大量…

Mel Spectrogram

参考链接: Short-time Fourier transform - MATLAB stft- MathWorks 中国 https://medium.com/analytics-vidhya/understanding-the-mel-spectrogram-fca2afa2ce53 a spectrogram as a bunch of FFTs stacked on top of each other. 给出hop length后&#xff0…

TMP耗时较高的优化问题

1)TMP耗时较高的优化问题 ​2)Unity重载Object后,如何判定物体是否为空 3)SRP Batch在添加unity_SpecCube后的问题 4)堆内存会持续上升,如何用UWA报告来分析 这是第326篇UWA技术知识分享的推送,…

大话数据结构-栈

1 概述 栈(Stack)是限定仅在表尾进行插入和删除操作的线性表。 允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈,栈又称为后进…

界面控件DevExpress WinForm——轻松构建类Visual Studio UI(三)

DevExpress WinForm拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任…

MyBatisPlus Study Notes

文章目录1 MyBatisPlus概述1.1 MyBatis介绍1.2 MyBatisPlus特性2 标准数据层开发2.1 MyBatisPlus的CRUD操作API2.2 分页功能接口实现2.2.1 config(配置层)拦截器实现2.2.2 Dao(Mapper)数据访问层(CRUD)操作2.2.3 Junit单元测试进行…

新版本GPU加速的tensorflow库的配置方法

本文介绍在Anaconda环境中,配置可以用GPU运行的Python新版tensorflow库的方法。 在上一篇文章Anaconda配置Python新版本tensorflow库(CPU、GPU通用)的方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/129285815&am…