STM32入门教程-2023版【5-1】EXTI外部中断

news2024/12/29 9:36:45

关注 +点赞  不错过精彩内容

图片

大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 

本节主要讲的是,中断系统和外部中断,依靠外部中断来学习中断系统

中断系统:管理和执行中断的逻辑结构

外部中断:诸多能产生中断的外设之一

一、什么是中断

图片

中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行

中断触发条件:如对外部中断来说,是引脚发生了电平跳变;对于定时器来说,定时的时间到了;对于串口通信来说,可以是接收到了数据。这些都是比较紧急的事件,如果不及时处理,那么下一个跳变信号就会跟着过来、新的数据会去覆盖旧的数据,所以需要及时处理。

使用中断系统的必要性:极大的提高了程序运行效率,如果没有中断系统,为了防止外部中断被忽略或者串口数据被覆盖,那么主程序就需要不断地查询是否有这些事情发生,就不能执行其他事情了。比如,如果没有定时中断,那么主函数只能使用Delay函数来实行定时功能,但有了中断系统以后主程序就可以放心执行其他事情,有中断的时候再去处理

中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源。这个中断优先级是我们根据程序设计的需求,自己设置的,中断优先级是为了在多个中断同时申请时,判断一下,应该先处理哪个,如果事件非常紧急,那你就把优先级设置高一些,如果不是那么紧急,那你就可以把优先级设置低一些,这样可以更好地安排这些中断事件,防止紧急的事件被别的中断耽误。在STM32中,中断优先级还有多种分类,这个后面再详细展开讲。

中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回。这种把中断程序再次中断的现象,就叫做中断嵌套。中断嵌套也是为了照顾非常紧急的中断的,如果现在CPU已经在执行某个中断程序了,那这个中断就可以把当前的中断程序进行二次中断,这样新的紧急中断就可以立即被执行了,能否进行中断嵌套,也是由中断优先级来决定的

作 者 :硬核王同学

------- END -------

关注公众号回复“加群”按规则加入技术交流群  回复“1024”查看更多内容

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1418270.html

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

相关文章

idea docker 内网应用实践

文章目录 前言一、服务器端1.1 离线安装docker1.2 开启docker远程访问1.3 制作对应jdk镜像1.3.1 下载jdk171.3.2 Dockerfile 制作jdk17镜像1.3.3 镜像导出1.3.4 服务器引入镜像 二、Idea 配置2.1 Dockerfile2.2 pom 引入docker插件2.3 idea docker插件配置2.4 打包镜像上传2.5 …

基于logisim的MIPS单周期硬布线24条指令CPU

目录 1 前言 2 思路分享 2.1 下载资源 2.2 观看视频 2.3 连接相关电路 2.4 撰写报告 2.5 答辩准备 3 云盘链接 1 前言 该项目为本人大三上学期的实训成果,在实训过程中,纯靠自己摸索,因此迷茫了一段时间。为了不让后来的同学重蹈覆辙…

快速入门JavaScript基础

JavaScript认知 序言 JavaScript发展历史(JS) 简称JS 1.Netscape(网景) 公司的这种浏览器脚本语言,最初名字叫做 Mocha2.1995年9月改为 LiveScript3.1995年12月,Netscape 公司与 Sun 公司(Java 语言的发明者和所有者)达成协议&am…

Layui + Echarts 5.0

Layui 怎么整合最新版本的 Echarts 5.0,Echarts 4 升级到 5后,有了很大改变,新的配置项4是无法兼容的,所以想要使用新的功能,都需要升级! 新建一个echarts.js文件 layui.define(function (exports) {// 这…

C#,广义斐波那契数(Generalised Fibonacci Numbers)的算法

广义斐波那契序列(generalized Fibonacci sequence)是斐波那契数的推广。由递推关系F₁F₂…Fm-10,Fₘ1,FmnFₙFn1…Fnm1,n≥1所产生的序列,称为m级广义斐波那契序列。 计算结果: 源代码: 1 文本格式 …

AF647 二苯并环辛炔,AF647-DBCO,一种明亮且可感光的远红色染料

您好,欢迎来到新研之家 文章关键词:AF647 二苯并环辛炔,AF647 DBCO,Alexa Fluor 647 DBCO,AF647-二苯并环辛炔,AF647-DBCO 一、基本信息 产品简介:Alexa Fluor 647是一种独特的远红色染料&am…

第14章 File类与IO流

第14章 File类与IO流 主要内容 File类字节流字符流文件流缓冲流转换流对象流打印流Scanner、System与IO流 教学目标 使用File类对象表示文件或目录 能够辨别相对路径和绝对路径 能够说出IO流的分类和功能 能够使用FileOutputStream写出数据到文件 能够使用FileInputStream读…

uniapp-v3组合式语法-data实现

在vue选项式风格中,data数据是放置在export default 导出的对象中的一个data方法里面返回 export default {// data() 返回的属性将会成为响应式的状态// 并且暴露在 this 上data() {return {count: 0}},}但这样写,很明显一点都不优雅,代码缩进太多了,还没开始写呢,就已经嵌套…

蓝牙简学(四)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 HID协议一、摘要二、设备实现1. 大概要写的数据解释2. 代码例子3. 代码例子(c) HID协议 一、摘要 HID(Human Interface Device…

Qt SQLite3数据库加密 QtCipherSqlitePlugin

在客户端软件开发过程中,基本都会涉及到数据库的开发。QT支持的数据库也有好几种(QSQLITE, QODBC, QODBC3, QPSQL, QPSQL7),SQLite就是其中之一,但这个 SQLite 是官方提供的开源版本,没有加密功能的。如果对…

【leetcode】01背包总结

01 背包 关键点 容器容量固定每件物品只有两种状态:不选、选 1 件求最大价值 代码 int N, W; // N件物品,容量为W int w[N], v[N]; // w为大小,v为容量/* 数组定义 */ int[][] dp new int[N][W 1]; // 注意是W 1, 因为重量会取到W dp[…

win11玩游戏找不到d3dx9如何解决?5种方法轻松搞定dll问题

在Windows 11操作系统环境下,如果用户在运行游戏时发现系统无法找到d3dx9组件,这一问题可能会引发一系列不良影响和限制,严重影响到用户的正常游戏体验。首先,由于d3dx9是DirectX 9.0c的一部分,负责处理图形渲染等关键…

Nodejs前端学习Day5

苦其心志,劳其筋骨 文章目录 前言一、处理路径问题二、path路径模块总结 前言 继续fs 一、处理路径问题 在使用fs模块操作文件时,如果提供的操作路径是以./或…/开头的相对路径时,很容易出现路径动态拼接错误的问题 原因:代码在…

选择合适的CRM管理系统,需要满足以下条件

随着数据时代的发展和企业业务的不断扩大,数据的比例开始增加,传统的数据计算方法不再适合现代企业。客户管理已成为企业最重要的组成部分之一,越来越多的企业开始关注客户管理。在crm管理系统上,企业希望通过crm管理系统&#xf…

搜索引擎Elasticsearch了解

1.Lucene 是什么? 2.模块介绍 Lucene是什么: 一种高性能,可伸缩的信息搜索(IR)库 在2000年开源,最初由鼎鼎大名的Doug Cutting开发 是基于Java实现的高性能的开源项目 Lucene采用了基于倒排表的设计原理,可以非常高效地实现文本查找,在底层采用了分段的存储模式,使它在读…

面试官:Mysql中EXISTS与IN的使用有哪些差异

在数据库查询优化中,查询效率直接关系到应用程序性能。其中,IN和EXISTS是两种常见的子查询操作符,广泛应用于SQL查询语句,但它们在执行效率上有所不同。 本文深入探讨IN和EXISTS的工作原理,以及在何种情境下选择更为合…

玩转WEB接口之三续篇【HTTPS证书申请 - nginx验证】

文章目录 一, 概述二,nginx下载三,访问域名1. 做域名映射2. 运行nginx并通过域名访问 四,配置SSL证书1. 配置证书文件2. nginx 添加证书文件 五、运行并验证1. 测试、重新加载2. https访问 一, 概述 接上篇 玩转WEB接…

Qt应用软件【串口篇】串口通信

文章目录 1.串口概述2.串口传输数据的基本原理电信号的传输过程 3.串口的几个概念数据位(Data Bits)奇偶校验位(Parity Bit)停止位(Stop Bits)流控制(Flow Control)波特率&#xff0…

找到满意的北京软件外包公司

寻得一家满意的软件外包开发公司,需明确自身需求,细心调研,筛选比较,这样方能找到技术实力雄厚、服务贴心的合作伙伴,助力企业数字化转型之路。要找到一家满意的软件外包开发公司,需要遵循以下几个步骤&…

UDF学习(七)非稳态宏和对流宏及UDS_DIFFUCITY宏

非稳态宏和对流宏—FLUENT UDF-DEFINE_UDS_UNSTEADY宏 非稳态如何挂载 UDF_DEFINE_UDS_FLUX宏 对流项的宏,可以从help文件中直接用 FLUENT UDF-DEFINE_UDS_DIFFUCITY宏 定义了扩散系数 两个宏:DEFINE_ANISOTROPIC_DIFFUSITY宏和DEFINE_DIFFUSIVITY&a…