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

STM32学习历程(day5)

EXTI外部中断

中断

中断就是在主程序运行过程中 出现了特定的中断触发条件(中断源),CPU会暂停当前的程序,去处理中断程序 处理完会返回被暂停的位置 继续运行原来的程序。

中断优先级

当有多个中断源同时申请中断时 CPU会根据中断源的轻重缓急进行裁决 优先响应更加紧急的中断源

中断嵌套

当一个中断程序正在运行时,又有更高优先级的中断源申请中断 CPU会再次中断当前程序,并保存位置 转而去处理新的中断程序 处理完之后依次返回

EXTI外部中断 

EXTI可以监测指定GPIO口的电平信号 当期指定的GPIO口产生电平变化时,EXTI立即像NVIC法出中断申请,经过NVIC裁决后即可中断CPU主程序 使CPU处理EXTI中断程序

可以支持的触发方式:上升沿|下降沿|双边沿|软件触发

支持的GPIO口:所有GPIO口都支持 但是相同的PIN不能同时触发中断(下面会讲为什么)

通道数:16个GPIO_Pin PVD输出 RTC闹钟 USB唤醒 以太网唤醒共20个

触发响应方式:中断响应/事件响应

NVIC(嵌套中断向量控制器)

NVIC(嵌套中断向量控制器)

STM32中用来管理中断和分配优先级的,一共有16个优先等级

CPU就像一个医生 而NVIC就像一个叫号器 医生只需要专心看病即可 当比较严重的病人来时 可以通过叫号器来通知医生

NVIC优先级分组

NVIC的中断优先级是通过优先级寄存器的4位来实现的,这四位可以进行切分,分为高n位的抢占优先级和低4-n位的响应优先级,抢占优先级顾名思义可以中断嵌套,响应优先级高的可以优先排队,抢占优先级和响应优先级均按中断号排队

 一共4位 抢占优先级和响应优先级平分


EXIT结构讲解

AFIO会选择GPIO口中的一个引脚来接入到EXTI边沿检测及控制 一共可以选择16个 这就是前面为什么不同GPIO口的同个pin值不能同时接入的原因

外部中断的9-5是会触发同一个中断函数 同理5-15也会处理同一个中断函数 这两种都需要根据标志位来区分到底是哪个中断进来的

其他外设就是事件响应

输入线进来时会先经过边沿检测 看看是否满足上升沿或者下降沿 他与软件中断是走同一个或门 两个满足一个都会继续往下走,往上是触发中断的,往下是触发事件的。触发中断会先请求一个挂起寄存器,相当于中断标志位 可以通过这个判断是哪一个通道触发的中断,然后经过和中断屏蔽寄存器的与门 这就是屏蔽寄存器能生效的原因了 两个都为1才能中断。事件中断也是一样的。

总结

今天学习了OLED屏幕的用法 但是up主是直接给的程序 代码比较繁多 演示了下如何通过OLED调试程序 以及使用断点等、然后就学了EXTI外部中断 以前学习的时候 是通过汇编来学习的 算是了解一点 汇编在这块得自己保存CPU运行时的地址 以及保存现场 恢复现场。但是通过C语言就不要了 编译器都给我们处理好了。

相关文章:

STM32学习历程(day5)

EXTI外部中断 中断 中断就是在主程序运行过程中 出现了特定的中断触发条件(中断源),CPU会暂停当前的程序,去处理中断程序 处理完会返回被暂停的位置 继续运行原来的程序。 中断优先级 当有多个中断源同时申请中断时 CPU会根据…...

格蠹汇编阅读理解

一、调试工具使用方式 WinDbg常用命令: 执行 lm 命令,可以看到进程中有几个模块。执行~命令列一下线程。用!heap 命令列一下堆。执行!address 命令可以列出用户态空间中的所有区域。搜索吧!就从当前进程用户态空间的较低地址开始搜&#xf…...

深入探索:scikit-learn中递归特征消除(RFE)的奥秘

深入探索:scikit-learn中递归特征消除(RFE)的奥秘 在机器学习的世界里,特征选择是一项至关重要的任务。它不仅能够提高模型的性能,还能减少模型的复杂度,避免过拟合。scikit-learn,作为Python中一个广泛使用的机器学习…...

240708_昇思学习打卡-Day20-MindNLP ChatGLM-6B StreamChat

240708_昇思学习打卡-Day20-MindNLP ChatGLM-6B StreamChat 基于MindNLP和ChatGLM-6B实现一个聊天应用,本文进行简单记录。 环境配置 %%capture captured_output # 实验环境已经预装了mindspore2.2.14,如需更换mindspore版本,可更改下面mi…...

lua入门(2) - 数据类型

前言 本文参考自: Lua 数据类型 | 菜鸟教程 (runoob.com) 希望详细了解的小伙伴还请查看上方链接: 八个基本类型 type - 函数查看数据类型: 测试程序: print(type("Hello world")) --> string print(type(10.4*3)) --> number print(t…...

dify/api/models/provider.py文件中的数据表

源码位置:dify/api/models/provider.py providers 表结构 字段英文名数据类型字段中文名字备注idStringUUIDIDtenant_idStringUUID租户IDprovider_nameString提供商名称provider_typeString提供商类型encrypted_configText加密配置is_validBoolean是否有效last_us…...

从入门到精通:网络基础详解

前言 在现代社会,网络技术已经成为我们日常生活和工作中不可或缺的一部分。从简单的网页浏览到复杂的分布式系统,网络技术都扮演着至关重要的角色。通过这篇文章,读者将从入门到精通,全面掌握网络编程的理论和实践。 重点摘要 …...

初步理解三__《面向互联网大数据的威胁情报 并行挖掘技术研究》

初步理解三 5类战术标签 gtp 收集开源的网络安全报告并将其转化为统一的文本格式,并且标注了5类战术标签是一个涉及到数据处理和分类的复杂任务。以下是一种可能的处理方法: 数据收集和整合: 使用网络爬虫或API访问工具收集开源的网络安全…...

【C++修行之道】string类的使用

目录 一.C语言中的字符串 二、标准库中的string类 (了解) 2.1 string类(了解) 2.2 帮助文档阅读 三、 string类的常用接口说明 3.1 string类对象的常见构造 3.2 string类对象的容量操作 3.3 string类对象的访问及遍历操作 字符串类的简单实现 3.4 string类对象的修改…...

云原生监控-Kubernetes-Promethues-Grafana

云原生监控-Prometheus 作者:行癫(盗版必究) 引读:本文章所涉及到技术点包括Prometheus、Grafana、Kuebrnetes;Prometheus基于外部构建采集并监控Kubernetes集群以及集群中的应用,例如使用mysql-node-exporter、nginx-node-exporter采集Kuebrnetes集群中的应用数据,使用…...

MySQL高级----InnoDB引擎

逻辑存储结构 表空间 表空间(ibd文件),一个mysql实例可以对应多个表空间,用于存储记录、索引等数据。 段 段,分为数据段(Leaf node segment)、索引段(Non-leaf node segment)、回滚段(Rollback segment),InnoDB是…...

Docker定时清理

一、循环调度执行 1、检查cron状态 systemctl status crond 2、创建要执行的shell脚本 vim /home/cleanup_docker.sh #! /bin/bash # 清理临时文件 echo $(date "%H:%M:%S") "执行docker清理命令..." docker system prune -af-a 清理包括未使用的镜像 …...

mysql之导入测试数据

运维时经常要这样:mysql改表名,创建一个一样的表不含数据,复制旧表几条数据进去 改变表的名字: RENAME TABLE old_table_name TO new_table_name; 这将把原来的表old_table_name重命名为new_table_name。 创建一个一样的表结构…...

WPScan漏洞扫描工具的介绍及使用

目录 1. 介绍2. 常用参数 1. 介绍 WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括WordPress本身的漏洞、插件漏洞和主题漏洞,最新版本WPScan的数据库中包含超过18…...

基于单片机的饲料搅拌机控制系统设计

摘要 : 文章主要从软件和硬件两个部分对基于单片机的饲料搅拌机控制系统进行研究设计 。 硬件部分主要由传感器模块 、 信号采集模块、 键盘接入模块 、 LED 显示模块 、 继电器模块以及看门狗模块组成 。 软件部分在 KeilC51 软件基础上重点对控制系统主程序 、…...

Mysql笔记-v2

零、 help、\h、? 调出帮助 mysql> \hFor information about MySQL products and services, visit:http://www.mysql.com/ For developer information, including the MySQL Reference Manual, visit:http://dev.mysql.com/ To buy MySQL Enterprise support, training, …...

Java SpringBoot MongoPlus 使用MyBatisPlus的方式,优雅的操作MongoDB

Java SpringBoot MongoPlus 使用MyBatisPlus的方式,优雅的操作MongoDB 介绍特性安装新建SpringBoot工程引入依赖配置文件 使用新建实体类创建Service测试类进行测试新增方法查询方法 官方网站获取本项目案例代码 介绍 Mongo-Plus(简称 MP)是一…...

【易捷海购-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...

antd+vue——实现table组件跨页多选,已选择数据禁止第二次重复选择

需求场景:点击【新增】按钮可以在分页弹窗中跨页多选选择数据后添加到页面中,再次点击【新增】,已经选择过的数据则置灰不让重复选择。 选择后,置灰 点击【确定】数据添加到页面中,可再次点击【新增】进行添加数据 …...

Python采集京东标题,店铺,销量,价格,SKU,评论,图片

京东的许多数据是通过 JavaScript 动态加载的,包括销量、价格、评论和评论时间等信息。我们无法仅通过传统的静态网页爬取方法获取到这些数据。需要使用到如 Selenium 或 Pyppeteer 等能够模拟浏览器行为的工具。 另外,京东的评论系统是独立的一个系统&a…...

避坑指南:微信支付V3 SDK自动更新证书失败的5种常见原因及修复方法

微信支付V3证书自动更新失败排查手册:从原理到实战修复 微信支付的V3版本SDK以其自动证书更新机制著称,但不少开发者在集成过程中都遭遇过AutoUpdateCertificatesVerifier的失败问题。证书更新失败不仅会导致支付功能中断,还可能引发验签错误…...

让你的调试日志五彩斑斓:J-Link RTT高级封装技巧(支持中文、浮点数、十六进制)

让你的调试日志五彩斑斓:J-Link RTT高级封装技巧(支持中文、浮点数、十六进制) 调试是嵌入式开发中不可或缺的一环,而高效的调试工具能显著提升开发效率。J-Link RTT(Real Time Transfer)作为一种无需额外硬…...

内容营销对 SEO 有什么影响

<h3 id"seo">内容营销对 SEO 有什么影响</h3> <h4 id"">引言</h4> <p>在当今数字化时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;和内容营销被广泛认为是网站流量和业务增长的关键驱动因素。许多企业在网站建设…...

Word转HTML图片处理全攻略:Base64 vs 文件存储的实战对比

Word转HTML图片处理全攻略&#xff1a;Base64 vs 文件存储的实战对比 在文档处理领域&#xff0c;Word转HTML的需求日益增长&#xff0c;尤其是需要将文档内容嵌入网页或富文本编辑器时。图片作为文档的重要组成部分&#xff0c;其处理方式直接影响转换效果和系统性能。本文将深…...

视频会议不止办公!揭秘它如何重构医疗与教育两大行业

在数字技术全面普及的今天&#xff0c;视频会议早已不再局限于企业内部日常办公沟通这一单一用途&#xff0c;开始深度渗透到各大垂直行业领域中。其中医疗、教育这两大与民生息息相关的领域&#xff0c;更是借助定制化开发的视频会议技术&#xff0c;解决了不少长期存在的行业…...

Qwen3-VL-WEBUI部署避坑指南:从Docker到网页访问全流程

Qwen3-VL-WEBUI部署避坑指南&#xff1a;从Docker到网页访问全流程 1. 部署前的准备工作 1.1 硬件与系统要求 在开始部署Qwen3-VL-WEBUI之前&#xff0c;请确保您的设备满足以下最低配置要求&#xff1a; GPU&#xff1a;NVIDIA RTX 4090D&#xff08;24GB显存&#xff09;…...

敏捷团队沟通技巧:减少冲突的5个方法

在敏捷开发环境中&#xff0c;软件测试从业者常面临跨职能冲突的挑战。数据显示&#xff0c;超过70%的项目延迟源于沟通不畅&#xff0c;尤其在测试与开发团队之间&#xff0c;角色目标错位&#xff08;如开发侧重快速交付&#xff0c;测试聚焦风险防控&#xff09;易引发摩擦。…...

Qwen3-TTS开源大模型效果展示:俄文/葡萄牙文/意大利文等小语种高自然度语音生成

Qwen3-TTS开源大模型效果展示&#xff1a;俄文/葡萄牙文/意大利文等小语种高自然度语音生成 你听过AI用俄语讲普希金的诗吗&#xff1f;或者用意大利语念一段歌剧台词&#xff1f;过去&#xff0c;想让AI生成地道的小语种语音&#xff0c;要么音色机械&#xff0c;要么口音奇怪…...

YOLOv8特征可视化实战:如何用3种合并模式优化模型调试(附完整代码)

YOLOv8特征可视化实战&#xff1a;3种合并模式优化模型调试的工程实践 在计算机视觉领域&#xff0c;理解神经网络内部工作机制一直是提升模型性能的关键。YOLOv8作为当前最先进的实时目标检测框架之一&#xff0c;其内部特征层的可视化分析能够为模型调试提供直观依据。然而&a…...

Vercel预览部署的隐藏玩法:除了看UI,还能这样测API和监控性能

Vercel预览部署的隐藏玩法&#xff1a;除了看UI&#xff0c;还能这样测API和监控性能 当大多数开发者将Vercel的预览部署视为前端UI的"展示橱窗"时&#xff0c;一个更强大的应用场景正被悄然忽视——它完全可以成为全栈开发的预发布验证平台。想象一下&#xff1a;在…...