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

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框图

相关文章:

EXTI外部中断

? 难点:中断向量表、看门狗、NVIC的优先级位?EXTI框图? ------------------------ 中断系统 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源)--->例如:…...

小肥柴慢慢手写数据结构(C篇)(5-4 中场小结)

小肥柴慢慢学习数据结构笔记(C篇)(5-4 中场小结) 目录5-14 再看数据结构的基础问题5-15 接下来关于Tree你还需要学习和了解的内容参考文献和资料 目录 5-14 再看数据结构的基础问题 假设前面讨论的所有内容大家都已经自己编码实…...

flutter 功能

flutter功能 带缓存的tab切换功能 使用PageController进行对应tab的widget缓存 late PageController _keepActiveVC;///当前使用的视图索引late int _index;late PageController _keepActiveVC;/// 所有视图final List<Widget> _bodys [];overridevoid initState() {…...

Sql Server 存储过程

一、创建存储过程 USE [数据库名称] GO /****** Object: StoredProcedure [dbo].[存储过程名称] Script Date: 2024/2/19 9:47:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: <Author,,Name> -- Create date: <Create Dat…...

二.重新回炉Spring Framework:Spring Framework主要组件概览

1.写在前面的话 这里主要简单说一下Spring Framework的几个核心组件的总体情况。为了比较直观&#xff0c;这里使用了ClassPathXmlApplicationContext的类图来进行说明。它基本上包含了 IoC 体系中大部分的核心类和接口。类图如下图所示&#xff1a; 2.Resource 组件体系 R…...

Open CASCADE学习|曲线向曲面投影

在三维空间中&#xff0c;将曲线向曲面投影通常涉及复杂的几何计算。这个过程可以通过多种方法实现&#xff0c;但最常见的是使用数学和几何库&#xff0c;如OpenCASCADE&#xff0c;来处理这些计算。 在OpenCASCADE中&#xff0c;投影曲线到曲面通常涉及以下步骤&#xff1a;…...

怎样连接局域网?

局域网&#xff08;Local Area Network&#xff0c;缩写为LAN&#xff09;是建立在小范围内的计算机网络&#xff0c;用于连接同一建筑物或者办公场所内的设备。连接局域网可以实现设备之间的信息共享和远程通信。本文将介绍如何连接局域网&#xff0c;并介绍了天联组网天联的使…...

OpenAI 发布文生视频大模型 Sora,AI 视频要变天了,视频创作重新洗牌!AGI 还远吗?

一、一觉醒来&#xff0c;AI 视频已变天 早上一觉醒来&#xff0c;群里和朋友圈又被刷屏了。 今年开年 AI 界最大的震撼事件&#xff1a;OpenAI 发布了他们的文生视频大模型 Sora。 OpenAI 文生视频大模型 Sora 的横空出世&#xff0c;预示着 AI 视频要变天了&#xff0c;视…...

java基础day01

1.什么是Java Java是一门编程语言 思考问题&#xff1a; ​ 人和人沟通? ​ 中文 英文 ​ 人和计算机沟通&#xff1f; 计算机语言&#xff1a; C C C# php python 2. Java诞生 前身叫Oak&#xff08;橡树&#xff09;…...

读十堂极简人工智能课笔记06_自然语言处理

1. 聊天机器人 1.1. 人工智能往往掌握不了跨越几段对话语境的讨论 1.1.1. 抓不住连贯的主题&#xff0c;只能单独处理每个句子 1.1.2. 不能将其答案与现实联系起来 1.1.3. 可能会遵循语言规则、统计相关性&#xff0c;甚至查找有关事实来为每个新句子提供答复 1.2. 聊天机…...

Linux文件信息,drwxr-xr-x. 2 root root 6 Jan 30 17:42 Desktop

drwxr-xr-x. 2 root root 6 Jan 30 17:42 Desktop drwxr-xr-x. drwxr-xr-x.d是文件类型rwx r-x r-x9位&#xff0c;每3位一组&#xff0c;一共3组&#xff0c;代表基本权限第一组 文件的创建者 | 拥有者第二组 和拥有者在一个组中第三组 其他用户rread&#xff0c;读的权限ww…...

深入理解Promise:用法和面试问题解析

引言 在现代的异步JavaScript编程中&#xff0c;Promise是一个强大的工具&#xff0c;用于更优雅地处理异步操作。本文将深入探讨Promise的具体用法&#xff0c;并提供一些在面试中可能遇到的问题及其答案。 Promise的基本用法 Promise是一个代表异步操作最终完成或失败的对…...

css2背景

css2背景 一.背景颜色二.背景图片三.背景平铺四.背景图片位置五.背景图像固定六.复合型写法七.背景颜色半透明八.总结 一.背景颜色 默认是transparent(透明&#xff09; 二.背景图片 默认是none 三.背景平铺 默认是background-repeat(平铺&#xff09; 四.背景图片位置…...

KUKA库卡机器人编程语言是什么?

KUKA库卡机器人的编程语言主要是KUKA Robot Language&#xff08;简称KRL&#xff09;。KRL是库卡机器人专门为其机器人系统设计的编程语言&#xff0c;用于编写和控制KUKA工业机器人的运动和操作。KRL结合了指令式编程和结构化编程的特点&#xff0c;具有一定的易学性和灵活性…...

Django学习全纪录:Django视图和路由的配置,应用的创建以及注册

导言 在之前的文章中,我们已经将Django的环境部署完成,包括一些注意事项以及前期工作,都已经完成。这篇文章,我们就可以正式开始干活了。 学习目标 1、学习创建应用以及注册APP 2、初步认识视图和路由,以及编写简单的代码 3、启动应用观察变化 创建第一个应用(APP) …...

LabVIEW卫星电视接收仿真系统

LabVIEW卫星电视接收仿真系统 随着卫星电视数字化的加速&#xff0c;传统模拟信号接收系统已无法满足需求。设计一套船载数字卫星电视接收系统&#xff0c;通过LabVIEW环境进行仿真实验&#xff0c;验证系统设计的可行性与有效性&#xff0c;满足数字信号接收的高精度要求&…...

docker修改工作目录

开始之前请务必给服务器打快照&#xff01;&#xff01;&#xff01; 开始之前请务必给服务器打快照&#xff01;&#xff01;&#xff01; 开始之前请务必给服务器打快照&#xff01;&#xff01;&#xff01; docker 默认安装在 /var/lib/docker 目录下 $ docker info | g…...

Ps:统计

Ps菜单&#xff1a;文件/脚本/统计 Scripts/Statistics 统计 Statistics脚本命令提供了一种高效的方法来处理和分析大量图像&#xff0c;使用户能够自动执行复杂的图像分析任务&#xff0c;并在多个图像间应用统计学方法。这个功能极大地扩展了 Photoshop 在科学研究、图像编辑…...

java生成pdf

1.pdf预览 2.maven <!--pdf--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.9</version></dependency><dependency><groupId>com.itextpdf</groupId>…...

鸿蒙应用/元服务开发-窗口概述

一、窗口模块的定义 窗口模块用于在同一块物理屏幕上&#xff0c;提供多个应用界面显示、交互的机制。 对应用开发者而言&#xff0c;窗口模块提供了界面显示和交互能力。 对终端用户而言&#xff0c;窗口模块提供了控制应用界面的方式。 对整个操作系统而言&#xff0c;窗…...

Ubuntu 24.04 时间同步踩坑记:从 hwclock 到 timedatectl 的演进与实战

Ubuntu 24.04 时间同步踩坑记&#xff1a;从 hwclock 到 timedatectl 的演进与实战 记得第一次在 Ubuntu 24.04 上看到系统时间与 Windows 11 相差整整 8 小时时&#xff0c;我下意识地敲下了熟悉的 hwclock 命令——这个陪伴我多年的老伙计。然而终端冰冷的报错提示让我意识到…...

Java 物联网无人健身房设备联动与计费系统源码

以下是一个基于Java的物联网无人健身房设备联动与计费系统的源码实现框架&#xff0c;涵盖核心模块、技术细节及优化策略&#xff1a;一、系统架构分层架构&#xff1a;表现层&#xff1a;使用UniApp实现三端适配&#xff08;微信小程序、H5、APP&#xff09;&#xff0c;管理后…...

SDMatte在UI设计中应用:图标/按钮/插画透明底素材批量生成实战

SDMatte在UI设计中应用&#xff1a;图标/按钮/插画透明底素材批量生成实战 1. 为什么UI设计师需要专业抠图工具 在日常UI设计工作中&#xff0c;我们经常需要处理各种素材的透明背景问题。无论是制作应用图标、设计交互按钮&#xff0c;还是创建插画元素&#xff0c;干净的透…...

文墨共鸣企业内训系统搭建:基于AI的个性化学习路径与技能评估

文墨共鸣企业内训系统搭建&#xff1a;基于AI的个性化学习路径与技能评估 最近和几个做企业培训的朋友聊天&#xff0c;大家普遍头疼一个问题&#xff1a;公司花大价钱采购的在线学习平台&#xff0c;员工不爱用。要么是课程千篇一律&#xff0c;老员工觉得没意思&#xff1b;…...

HARMONYOS应用实例242:不等式组解集图示

不等式组解集图示 功能:输入两个不等式,自动在数轴上绘制两个解集,并高亮显示其公共部分。这是一个基于 HarmonyOS ArkTS 开发的交互式不等式求解工具,用户可以输入两个不等式(如 x > 2 和 x < 5),系统会自动解析并在数轴上绘制两个解集,同时高亮显示它们的公共部…...

炸锅!中科院分区永久停更,新锐分区接棒,科研圈要变天?

最近科研圈最大的瓜&#xff0c;莫过于中科院期刊分区的“换马甲”事件——运行22年的官方中科院分区正式谢幕&#xff0c;原团队转身推出“新锐期刊分区”&#xff0c;一石激起千层浪&#xff0c;不同立场的声音吵翻了论坛。今天就来梳理下整个事件的来龙去脉&#xff0c;拆解…...

突破3大资源壁垒:UABEA工具实战指南

突破3大资源壁垒&#xff1a;UABEA工具实战指南 【免费下载链接】UABEA UABEA: 这是一个用于新版本Unity的C# Asset Bundle Extractor&#xff08;资源包提取器&#xff09;&#xff0c;用于提取游戏中的资源。 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA 当你…...

AudioLDM-S与LangGraph:构建音效生成工作流引擎

AudioLDM-S与LangGraph&#xff1a;构建音效生成工作流引擎 1. 引言 想象一下这样的场景&#xff1a;电影制作人需要为一场雨夜追逐戏配乐&#xff0c;传统的工作流程需要先搜索音效库&#xff0c;筛选合适的雨声、脚步声、轮胎摩擦声&#xff0c;然后进行剪辑、混音&#xf…...

智能求职工具GetJobs:让你的投递效率提升300%的全流程指南

智能求职工具GetJobs&#xff1a;让你的投递效率提升300%的全流程指南 【免费下载链接】get_jobs &#x1f4bc;【找工作最强助手】全平台自动投简历脚本&#xff1a;(boss、前程无忧、猎聘、拉勾、智联招聘) 项目地址: https://gitcode.com/gh_mirrors/ge/get_jobs 每天…...

InnoDB 事务 undo log 与 MVCC 可视化讲解(画流程图+伪代码)

InnoDB 事务 undo log 与 MVCC 可视化讲解(画流程图+伪代码) 前言 在MySQL的InnoDB存储引擎中,事务的四大特性(ACID)是其核心能力之一。其中,隔离性(Isolation)和一致性(Consistency)的实现离不开undo log与MVCC(多版本并发控制)的精妙设计。 本文将从底层原理出…...