EXTI外部中断

? 难点:中断向量表、看门狗、NVIC的优先级位?EXTI框图?

------------------------

中断系统

中断:在主程序运行过程中,出现了特定的中断触发条件(中断源--->例如:对于外部中断,引脚发生电平跳变; 对定时器来说,定时时间到了 ;对串口通信来说,接收到了数据

使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行

中断优先级(自己设置):当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源

中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回

中断执行流程

STM32中断

68个可屏蔽中断通道(中断源),包含EXTI、TIM、ADC、USART、SPI、I2C、RTC等多个外设

使用NVIC统一管理中断,每个中断通道都拥有16个可编程的优先等级,可对优先级进行分组,进一步设置抢占优先级和响应优先级

      灰色的是内核中断,了解即可

WWDG 窗口看门狗,用来监测程序运行状态的中断。比如程序卡死了,没有及时喂狗,就会申请中断

PVD电源电压监测:如果供电电压不足,申请中断

补充: 中断向量表(中断地址的列表)

 程序中的中断函数,地址是由编译器来分配的,是不固定的。

 但是中断跳转,由于硬件限制,只能跳转到固定的地址执行程序。

 所以为了让硬件跳转到不固定的中断函数里,就要在内存中定义一个地址的列表。

 这个列表地址是固定的,中断发生后,就跳到这个固定位置,然后在这个固定位置,由编译器,再加上一条跳转到中断函数的代码,这样中断跳转就可以跳到任意位置了

本次课程使用 EXT10-EXT-14   EXTI9-5   EXTI15-10

NVIC(嵌套中断向量控制器)基本结构

NVIC是一个内核外设,CPU小助手,处理中断先后顺序

NVIC中断优先级分组(医生看病)

NVIC的中断优先级(16个)由优先级寄存器的4位二进制(0~15 值越小,优先级越高)决定,这4位可以进行切分,分为高n位(2^n)的抢占优先级和低4-n位(2^4-n)的响应优先级

抢占优先级高的可以中断嵌套(打断现在的中断,不让现在的病人看完,直接看病,先给自己看),响应优先级高的可以优先排队(不打断现在的中断,只是插队看病,等这个病人看完自己再看),抢占优先级和响应优先级均相同的按中断号(数值小优先响应)排队

stm32的中断不存在先来后到的排队方式,任何时候都是优先级高的先相应

EXTI简介

*EXTI(Extern Interrupt)外部中断

*EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序

简单来说,引脚电平变化,申请中断

*支持的触发方式:上升沿/下降沿/双边沿/软件触发

*支持的GPIO口:所有GPIO口,但相同的Pin号不能同时触发中断(PA1和PB1不能同时用)

*通道数:16个GPIO_Pin,外加PVD输出、RTC闹钟、USB唤醒、以太网唤醒

*触发响应方式:

        中断响应(正常流程)

        事件响应(当外部中断检测到引脚变化时,信号就不会通向CPU,而是通到其他外设,用来触发其他外设的操作(ADC,DMA)属于外设之间联合工作)

EXTI基本结构

外部中断配置流程

1.配置RCC

2.GPIO配置输入模式

3.AFIO 选择需要用的GPIO

4.EXTI 选择边沿触发方式、触发响应方式

5.NVIC优先级配置

AFIO复用IO口

AFIO主要用于引脚复用功能的选择和重定义

在STM32中,AFIO主要完成两个任务:复用功能引脚重映射、中断引脚选择

EXTI框图

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

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

相关文章

C++初阶(十二) stack和queue

一、stack的介绍和使用 1.1 stack的介绍 stack的文档介绍 stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行 元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作…

python_django高校运动会成绩管理系统4o4c3

田径运动会报名管理系统就是给学生进行网上报名,管理员管理报名信息的一种通用管理平台,从而方便管理人员对运动会的日常报名工作的管理。本系统的前台功能模块包括系统的基本操作、最新公告、运动项目和报名项目;系统的后台功能模块包括系统…

Ubuntu忘记登录密码重置步骤

Ubuntu忘记登录密码重置步骤 1.开机界面长按shitf键,进入grub,并选择Advanced options for ubuntu,按下回车 2.选择一个较新版本的recovery mode,按下回车 3.会跑一些数据,等待跑完后会出现下面的界面,选择…

百家号蓝V认证多少钱?开通蓝V认证的价值

随着互联网的发展,目前已经进入了一个自媒体的时代。百家号就是百度为创作者打造的集创作、发布、实现于一体的内容创作平台,也是内容运营获取低成本流量实现的官方自媒体账号。蓝V认证是平台对百家号的一个认证,通过认证之后头像有蓝V标识&a…

【STM32 CubeMX】I2C查询方式

文章目录 前言一、CubeMX配置IIC二、查询方式的使用2.1 分析一种情况2.2 Master模式2.3 Mem模式 总结 前言 在STM32 CubeMX环境中,I2C(Inter-Integrated Circuit)通信协议的查询方式是一种简单而常见的通信方式。通过查询方式,微…

JavaScript中数组和字符串有哪些原生方法

JavaScript是一门广泛应用于Web前端开发的高级编程语言,它具有丰富的内置方法和函数,方便我们对数据进行处理和操作。在JavaScript中,数组和字符串是两个常用的数据类型,它们都有许多原生方法可以使用。本文将向您介绍JavaScript中…

中小学信息学奥赛CSP-J认证 CCF非专业级别软件能力认证-入门组初赛模拟题第三套(选择题)

CSP-J入门组初赛模拟练习题第三套 1、以下不是属于国家顶级域名的是 A、.au B、.cn C、.com D、.jp 答案:C 考点分析:主要考查域名相关知识,au是澳大利亚、cn是中国,jp是日本,答案C 2、2个10进制数1111和1010的异…

第18讲 投票帖子管理实现

后端&#xff1a; /*** 删除指定id的投票信息* param id* return*/ GetMapping("/delete/{id}") Transactional public R delete(PathVariable(value "id")Integer id){voteDetailService.remove(new QueryWrapper<VoteDetail>().eq("vote_id…

图像卷积、步长、填充、特征图、多通道卷积、权重共享、感受野、池化

图像卷积、步长、填充、特征图、多通道卷积、权重共享、感受野、池化 卷积神经网络的一些基本概念&#xff1a;图像卷积、步长、填充、特征图、多通道卷积、权重共享、感受野、池化 1.图像卷积、步长、填充 图像卷积&#xff1a;卷积核矩阵在一个原始图像矩阵上 “从上往下、…

Kotlin基本语法3集合

1.List集合 1.1 只读List fun main() {val list listOf("Jason", "Jack", "Jacky")println(list.getOrElse(3){"Unknown"})println(list.getOrNull(3)?:"Unknown") } 1.2 可变List fun main() {val mutableList mutabl…

开源PDF工具 Apache PDFBox 认识及使用(知识点+案例)

文章目录 前言源码获取一、认识PDFBox二、导入依赖三、基础功能demo1&#xff1a;读取pdf所有内容demo2&#xff1a;读取所有页内容&#xff08;分页&#xff09;demo3&#xff1a;添加页眉、页脚demo4&#xff1a;添加居中45文字水印demo5&#xff1a;添加图片到右上角 参考文…

[FPGA开发工具使用总结]VIVADO在线调试(1)-信号抓取工具的使用

目录 1简介2 添加观测信号的几种方法2.1 通过定制IP核添加2.2 通过约束文件添加2.3 通过GUI生成DEBUG约束文件2.4 两种方法的优点与缺点 3在线调试方法3.1 器件扫描设置3.2 触发条件设置3.3 触发窗口设置3.4 采样过程控制 4常见问题4.1 时钟域的选择4.2 缺少LTX文件4.3 ILA无时…

c语言--一维数组传参的本质(详解)

目录 一、前言二、代码三、形式3.1形式13.2形式2 四、总结 一、前言 首先从⼀个问题开始&#xff0c;我们之前都是在函数外部计算数组的元素个数&#xff0c;那我们可以把函数传给⼀个函数后&#xff0c;函数内部求数组的元素个数吗&#xff1f; 二、代码 直接上代码&#x…

人力资源智能化管理项目(day09:权限应用)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/humanResourceIntelligentManagementProject 搭建页面结构 <template><div class"container"><div class"app-container"><el-button class"btn-add" type"p…

【COMP337 LEC4】

Classifier Evaluation Numerous measures exist (as we will shortly see) to compare the predicted labels by the trained classifier and actual ( target) labels in the test dataset 存在许多度量方法&#xff08;我们很快将会看到&#xff09;来比较训练过的分类器…

6、内网安全-横向移动WmiSmbCrackMapExecProxyChainsImpacket

用途&#xff1a;个人学习笔记&#xff0c;有所借鉴&#xff0c;欢迎指正&#xff01; 前言&#xff1a; 在内网环境中&#xff0c;主机192.168.3.31有外网网卡能出网&#xff0c;在取得该主机权限后上线&#xff0c;搭建web应用构造后门下载地址&#xff0c;利用该主机执行相…

H.264官方手册之帧间预测

一、 框架 只有解码 P和 B类型的宏块时才能调用该过程。 该过程的输出为当前宏块的帧间预测采样点&#xff0c;是一个16x16的亮度采样点 pred(Luma)。以及当ChromaArrayType不等于0时输出 pred(Cb)与pred(Cr) 如果mb_type为B_Skip或者B_Direct_16x16&#xff0c;mbPartIdx的范…

【HarmonyOS】鸿蒙开发之渲染控制——第2.3章

if/eles条件渲染 if的使用方法与javascript&#xff0c;java中使用的if/eles条件渲染使用基本一致。 案例: Entry Component struct IfElseDemo{State isShow:boolean false;build(){Column() {TitleBar({titleBarAttribute: {title: "ifElse使用案例",backShow:…

【图论经典题目讲解】CF786B - Legacy 一道线段树优化建图的经典题目

C F 786 B − L e g a c y \mathrm{CF786B - Legacy} CF786B−Legacy D e s c r i p t i o n \mathrm{Description} Description 给定 1 1 1 张 n n n 个点的有向图&#xff0c;初始没有边&#xff0c;接下来有 q q q 次操作&#xff0c;形式如下&#xff1a; 1 u v w 表示…

STM32F1 - 中断系统

Interrupt 1> 硬件框图2> NVIC 中断管理3> EXTI 中断管理3.1> EXTI与NVIC3.2> EXTI内部框图 4> 外部中断实验4.1> 实验概述4.2> 程序设计 5> 总结 1> 硬件框图 NVIC&#xff1a;Nested Vectored Interrupt Controller【嵌套向量中断控制器】 管理…