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

STM32 中断复习

中断

打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断。

  1. 在确定时间内对相应事件作出响应,如:温度监控(定时器中断)。
  2. 故障处理,检测到故障,需要第一时间处理,如:电梯门夹人了。
  3. 数据传输:不确定数据何时会来,如:串口数据接收。

高效处理紧急程序,不会一直占用CPU资源。

STM32 GPIO外部中断

  1. 信号输入到GPIO
  2. 信号输入到AFIO,GPIOXy->EXTIy
  3. EXTI可选择屏蔽,或上升沿/下降沿响应。
  4. NVIC,使能中断、优先级控制。
  5. 信号到CPU,处理中断。

NVIC

Nested vectored interrupt controller,嵌套向量中断控制器,属于内核(M3/4/7)。
在这里插入图片描述
在这里插入图片描述

中断向量表

定义一块固定的内存,以4字节对齐,存放各个中断服务函数程序的首地址。
中断向量表定义在启动文件(.s文件),当发生中断,CPU会自动执行对应的中断服务函数。

NVIC寄存器

在这里插入图片描述
在这里插入图片描述

中断优先级基本概念

  1. 抢占优先级(pre):高抢占优先级可以打断正在执行的低抢占优先级中断。
  2. 响应优先级(sub):当抢占优先级相同时,响应优先级高的先执行,但是不能互相打断。
  3. 数值越小,优先级越高。

NVIC的使用

  1. 设置中断分组:HAL_NVIC_SetPriorityGrouping
  2. 设置中断优先级:HAL_NVIC_SetPriority
  3. 使能中断:HAL_NVIC_EnableIRQ

EXTI

External interrupt/event controller,外部中断事件控制器。
包含20个产生事件/中断请求的边沿检测器,即总共:20条EXTI线。

  1. 中断:要进入NVIC,有相应的中断服务函数,需要CPU处理。
  2. 事件:不进入NVIC,仅用于内部硬件自动控制,如:TIM、DMA、ADC。

在这里插入图片描述

每条EXTI线都可以单独配置:选择类型(中断或者事件)、出发方式、支持软件触发、开启/屏蔽、有挂起状态位。

在这里插入图片描述

EXTI和IO映射关系

AFIO:Alternate Function IO,即复用功能IO,主要用于重映射和外部中断映射配置。

  1. 调试IO配置。
  2. 重映射配置:AFIO_MAPR,部分外设IO重映射配置。
  3. 外部中断配置:AFIO_EXTICR14,配置EXTI中断线015对应到哪个具体IO口。

配置AFIO寄存器之前要使能AFIO时钟,__HAL_RCC_AFIO_CLK_ENABLE()

在这里插入图片描述
Px0映射到EXTI0
Px15映射到EXTI15

中断使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
EXTI04、EXTI95、EXTI15~10,7个外部中断服务函数。

HAL库中断回调处理机制

在这里插入图片描述

相关文章:

STM32 中断复习

中断 打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断。 在确定时间内对相应事件作出响应,如:温度监控(定时器中断)。故障处理,检测到故障&#x…...

Django的模型

定义模型 from django.db import models class User(models.Model):# 类属性是表示表的字段username models.CharField(max_length50,uniqueTrue)password models.CharField(max_length200)create_time models.DateTimeField(auto_now_addTrue) # auto_now_add新增数据时间…...

非计算机科班如何丝滑转码

近年来,很多人想要从其他行业跳槽转入计算机领域。非计算机科班如何丝滑转码? 方向一:如何规划才能实现转码? 对于非计算机科班的人来说,想要在计算机领域实现顺利的转码并不是一件容易的事情,但也并非不…...

PyTorch深度学习实战(12)——数据增强

PyTorch深度学习实战(12)——数据增强 0. 前言1. 图像增强1.1 仿射变换1.2 亮度修改1.3 添加噪音1.4 联合使用多个增强方法 2. 对批图像执行图像增强3. 利用数据增强训练模型小结系列链接 0. 前言 数据增强是指通过对原始数据进行一系列变换和处理&…...

SpringCloud Ribbon中的7种负载均衡策略

SpringCloud Ribbon中的7种负载均衡策略 Ribbon 介绍负载均衡设置7种负载均衡策略1.轮询策略2.权重策略3.随机策略4.最小连接数策略5.重试策略6.可用性敏感策略7.区域敏感策略 总结 负载均衡通器常有两种实现手段,一种是服务端负载均衡器,另一种是客户端…...

04 qt功能类、对话框类和文件操作

一 QT中时间和日期 时间 ---- QTime日期 ---- QDate对于Qt而言,在实际的开发过程中, 1)开发者可能知道所要使用的类 ---- >帮助手册 —>索引 -->直接输入类名进行查找 2)开发者可能不知道所要使用的类,只知道开发需求文档 ----> 帮助 手册,按下图操作: 1 …...

安装软件包

安装软件包 创建一个名为 /home/curtis/ansible/packages.yml 的 playbook : 将 php 和 mariadb 软件包安装到 dev、test 和 prod 主机组中的主机上 将 RPM Development Tools 软件包组安装到 dev 主机组中的主机上 将 dev 主机组中主机上的所有软件包更新为最新版本 vim packa…...

玩转单元测试之gmock

引言 前文我们学习了gtest相关的使用,单靠gtest,有些场景仍然无法进行测试,因此就诞生了gmock。 gmock快速入门 在引入gtest时,gmock也同样引入了,因此只需要在编译时加上合适的编译选项即可,注意不同版…...

POI与EasyExcel--写Excel

简单写入 03和07版的简单写入注意事项: 1. 对象不同:03对应HSSFWorkbook,07对应XSSFWorkbook 2. 文件后缀不同:03对应xls,07对应xlsx package com.zrf;import org.apache.poi.hssf.usermodel.HSSFWorkbook; import …...

7. CSS(四)

目录 一、浮动 (一)传统网页布局的三种方式 (二)标准流(普通流/文档流) (三)为什么需要浮动? (四)什么是浮动 (五)浮…...

uni-app 集成推送

研究了几天,终于是打通了uni-app的推送,本文主要针对的是App端的推送开发过程,分为在线推送和离线推送。我们使用uni-app官方推荐的uni-push2.0。官方文档 准备工作:开通uni-push功能 勾选uniPush2.0点击"配置"填写表单…...

Spring Boot+Redis 实现消息队列实践示例

Spring BootRedis 实现一个轻量级的消息队列 文章目录 Spring BootRedis 实现一个轻量级的消息队列0.前言1.基础介绍2.步骤2.1. 引入依赖2.2. 配置文件2.3. 核心源码 4.总结答疑 5.参考文档6. Redis从入门到精通系列文章 0.前言 本文将介绍如何利用Spring Boot与Redis结合实现…...

11. 实现业务功能--获取用户信息

目录 1. 实现 Controller 2. 单体测试 3. 修复返回值存在的缺陷 3.1 用户的隐私数据:密码的密文和盐不能显示 3.2 将值为 null 的字段可以进行过滤 3.3 时间的格式需要进行处理,如 yyyy-mmmm-ddd HH:mm:ss 3.4 data 属性没有返回 4. 实现前端页…...

HTTPS

HTTPS是什么 HTTPS 属于应用层协议,其原理是通过SSL/TLS协议在HTTP和TCP之间插入一层安全机制。通过SSL/TLS握手过程,客户端和服务器协商出一个对称密钥,用于后续的数据加密和解密,从而保证数据的机密性和完整性。 为什么会需要…...

spring详解

spring是于2003年兴起的一款轻量级的,非侵入式的IOC和AOP的一站式的java开发框架,为简化企业级应用开发而生。 轻量级的:指的是spring核心功能的jar包不大。 非侵入式的:业务代码不需要继承或实现spring中任何的类或接口 IOC&…...

香港服务器备案会通过吗?

​  对于企业或个人来说,合规备案是网络运营的基本要求,也是保护自身权益的重要举措。以下内容围绕备案展开话题,希望为您解开疑惑。 香港服务器备案会通过吗? 目前,香港服务器无法备案,这是由于国内管理规定的限制…...

乐鑫推出 ESP ZeroCode 控制台

乐鑫科技 ESP ZeroCode 控制台是一个网页应用,用户只需点击鼠标,描述想要创建的产品类型、功能及其硬件配置,即可按照自身需求,快速生成符合 Matter 认证的固件,并在硬件上进行试用。试用过程中,如有任何不…...

从NLP到聊天机器人

一、说明 今天,当打电话给银行或其他公司时,听到电话另一端的机器人向你打招呼是很常见的:“你好,我是你的数字助理。请问你的问题。是的,机器人现在不仅可以说人类语言,还可以用人类语言与用户互动。这是由…...

相关搜索引擎常用搜索语法(Google hacking语法和FOFA语法)

一:Google Hack语法 Google Hacking原指利用Google搜索引擎搜索信息来进行入侵的技术和行为,现指利用各种搜索引擎并使用一些高级的搜索语法来搜索信息。既利用搜索引擎强大的搜索功能,在在浩瀚的互联网中搜索到我们需要的信息。 &#xff0…...

Mysql查询

第三章:select 语句 SELECT employees.employee_id,employees.department_id FROM employees WHERE employees.employee_id176; DESC departments;SELECT * FROM departments;第四章:运算符使用 SELECT employees.last_name,employees.salary FROM em…...

iOS设备支持文件管理解决方案:如何解决Xcode开发环境兼容性问题

iOS设备支持文件管理解决方案:如何解决Xcode开发环境兼容性问题 【免费下载链接】iOSDeviceSupport All versions of iOS Device Support 项目地址: https://gitcode.com/gh_mirrors/ios/iOSDeviceSupport iOSDeviceSupport项目为iOS开发者提供了全面的设备支…...

Happy Island Designer完整指南:免费在线岛屿设计工具终极教程

Happy Island Designer完整指南:免费在线岛屿设计工具终极教程 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal C…...

共筑智能传播信息安全域,新华社国家重点实验室与北京时光不语达成合作

新华社媒体融合生产技术与系统国家重点实验室与北京时光不语科技有限公司(TIMUS.AI)正式建立研发生态伙伴关系,并联合推出面向智能传播环境的“新华智信感知平台”,深化智能传播领域科研创新与成果转化,共同构建负责任…...

从SPI模式0到Quad I/O:手把手带你玩转W25Q128JV的性能压榨与接口升级

从SPI模式0到Quad I/O:W25Q128JV性能优化实战指南 在嵌入式系统设计中,存储器的性能往往成为整个系统响应速度的瓶颈。W25Q128JV这颗128Mbit容量的串行Flash芯片,凭借其灵活的接口配置和出色的性价比,已成为众多物联网设备、消费电…...

AI伦理实战:从偏见、可解释性到隐私保护的工程化解决方案

1. 项目概述:当AI从实验室走向现实,我们面临什么?几年前,我还在实验室里为一个模型的准确率提升0.5个百分点而兴奋不已。那时,“伦理”这个词,对我们这些埋头调参的工程师来说,似乎还停留在哲学…...

如何突破窗口限制:3分钟掌握WindowResizer强制调整技巧

如何突破窗口限制:3分钟掌握WindowResizer强制调整技巧 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些无法拖拽大小的应用程序窗口而烦恼吗?Win…...

游戏平台硬件开发:定制化与长期稳定的挑战

1. 游戏平台硬件开发的特殊挑战在游戏平台开发领域,硬件选型往往面临着一个两难选择:是采用现成的通用组件(Off The Shelf Components),还是投入高昂成本进行完全定制化开发?过去十年间,我参与过…...

别再混淆了!SVPWM算法中2Udc/3和Udc的电压幅值到底指什么?一个图讲清楚

别再混淆了!SVPWM算法中2Udc/3和Udc的电压幅值到底指什么?一个图讲清楚 在电力电子和电机控制领域,SVPWM(空间矢量脉宽调制)算法是变频驱动系统的核心技术之一。许多初学者甚至有一定经验的工程师,在学习和…...

Jellyfin智能片头检测解决方案:Intro Skipper插件技术指南

Jellyfin智能片头检测解决方案:Intro Skipper插件技术指南 【免费下载链接】intro-skipper Fingerprint audio to automatically detect and skip intro sequences in Jellyfin 项目地址: https://gitcode.com/gh_mirrors/in/intro-skipper Intro Skipper是一…...

HealthGPT入门教程:5分钟快速搭建你的个人健康助手

HealthGPT入门教程:5分钟快速搭建你的个人健康助手 【免费下载链接】HealthGPT Query your Apple Health data with natural language 💬 🩺 项目地址: https://gitcode.com/gh_mirrors/he/HealthGPT 想要用自然语言查询你的Apple健康…...