STM32基础篇:EXTI × 事件 × EXTI标准库

news2024/9/23 15:30:05

EXTI

EXTI简介

EXTI:译作外部中断/事件控制器,STM32的众多片上外设之一,能够检测外部输入信号的边沿变化并由此产生中断

例如,在检测按键时,按键按下时会使电平产生翻转,因此可以使用EXTI来读取按下时的边沿变化,从而给NVIC输出一个中断触发信号,通过中断响应函数实现想要的功能。


EXTI内部结构

当外部输入信号输入时,首先会经过一个叫边沿检测的模块,它有两路输出信号,分别是上升沿信号和下降沿信号。当外部输入信号发生一个上升沿时,边沿检测模块会在上升沿信号路输出一个脉冲信号(下降沿正好相反)。这两路输出信号再经过一个或门,形成双边沿信号路,即无论上升沿还是下降沿都会此路产生脉冲信号

通过数据选择器(复用器),从上述的三路里选择一路,连接到输出(例如,选择上升沿信号路,相当与选择了上升沿进行触发,意思是只有当输入信号发生上升沿时,会触发中断)。数据选择器就是用来选择中断触发的边沿

再往右走,有一个或门,一端连接了外部输入信号变化所触发的脉冲信号,另一端连接到了软件触发。(即:我们既可以通过外部输入信号的边沿变化去触发一个中断,也可以通过软件编程直接去触发中断

再往右还有中断屏蔽事件屏蔽,最后是中断挂起(其实就是挂起寄存器的一个比特位),当中断挂起收到脉冲信号后,其值由0变1,但是它不能完成自动清零,我们必须手动向这个寄存器写0。


EXTI通道

有时为了检测多个信号,将上图所示结构复制很多份,在EXTI里有20份这样的结构(即:EXTI0~EXTI19,且20份合起来才是一个完整的片上外设)。

作用:

1、让所有IO具有触发中断的能力

每个普通IO引脚都可以被设置为中断/事件的输入线,占用EXTI0~EXTI15共16个通道。但需要注意的是,对于数字编号相同的引脚来说,不能同时触发中断(例如我使用了PA0,就不能同时使用PB0、PC0等)。

2、其他功能

如下所示,用于特定的外设事件的EXTI16~EXTI19:


EXTI寄存器组

对于EXTI模块,其寄存器组如下(6个):

每一个寄存器有20个比特位,对应了20个通道。


上升/下降沿选择寄存器

通过这两个寄存器来配置外部输入信号的触发方式(即:上升沿、下降沿或双边沿触发),相当于控制了复用器。

以TR0为例,当上升/下降沿选择触发器TR0分别为1、0时,为上升沿触发;分别为0、1时,为下降沿触发;均为1时,为双边沿触发。


其他寄存器

软件触发寄存器 :将对应比特位置1,软件触发的位置就会发出一个脉冲。

中断屏蔽寄存器:向其比特位写0,中断就被屏蔽;写1,中断就会被挂起;

挂起寄存器:通常写这个寄存器,将其主动清零。

事件屏蔽寄存器:负则事件屏蔽的开关,方法与中断屏蔽寄存器一样。


事件

指突发事件本身,一般是一个脉冲信号,事件的处理过程不需要CPU介入(例如片上外设A产生了一个事件,那么它可以直接调用片上外设B去处理事件)。


EXTI标准库编程

在文件夹std_periph_driver里面存储着标准库的源码,其中stm32f10x_exti.h和stm32f10x_exti.c两个文件组成了EXTI的驱动。

EXTI_Init

用于初始化EXTI的某个通道。

void EXTI_Init(EXTI_InitTypeDef*EXTI_InitStruct);

此函数的参数为结构体变量,初始化之前需要自己对其赋值,具体赋值的内容如下 :

需要注意,EXTI也不需要开启时钟,虽然EXTI是片上外设,但它与芯片唤醒有关,比较特殊,其时钟默认开启,且不可关闭。


附其他函数:

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

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

相关文章

ChatGPT摆脱“AI味”:全面提升写作质感

ChatGPT在各种写作、创作场景都发挥了很大的价值,即使中文语料库占比不到5%,也能生成流畅的中文文本。但随着使用的深入,大家也逐渐发现了机器生成的内容,往往带有一种僵硬、刻板的“AI味”,尤其在论文、自媒体写作中&…

[RK3308H_Linux] 关于8+2(8路模拟麦克风 + 2路es7243e回采)的调试心得

问题描述 RK3308H 使用8路个模拟麦克风录音,2路用es7243e做回采 解决方案: 首先先调8路模拟麦克风,根据原理图确定使用的是哪路I2S。 以下为dts配置,acodec的属性注释附上。 &acodec {status "okay";rockchip,m…

CCNA-2-V7-模块7–9:可用且可靠的网络考试答案

1.一台启用了DHCP的客户端PC刚刚启动。客户端PC在与DHCP服务器通信时,将在哪两个步骤中使用广播消息?(选两个。) DHCPDISCOVERDHCPACKDHCPOFFERDHCPREQUESTDHCPNAK 2.管理员发出命令:管理员想达到什么目的? Router(config)# interface g0/1 Router(config-if)# ip address …

智充科技营收增速放缓:经营成本飙升,应收账款大幅增长

《港湾商业观察》黄懿 6月10日, XCHG Limited 智能充电有限公司(下称:智充科技)在美国证监会(SEC)更新招股书,拟在美国纳斯达克上市,其股票代码为“XCH”。北京智充科技有限公司为其国内运营主体(下称“北京智充科技”…

深入理解Java集合框架:构建高效、灵活的数据管理方案

深入理解Java集合框架:构建高效、灵活的数据管理方案 引言 Java集合框架(Java Collections Framework, JCF)是Java语言提供的一套用于表示和操作集合的统一架构。它包含了一系列的接口和类,用于存储和操作对象集合,如…

两个视频怎么剪辑成一个视频?3个方法分享

两个视频怎么剪辑成一个视频?将两个视频剪辑成一个视频,是现代数字内容创作中的高频需求,它不仅简化了素材管理,还能通过创意剪辑提升作品连贯性与表现力。通过精心编排,两个视频片段可以无缝融合,讲述更完…

DolphinScheduler本地安装部署与远程任务调度管理实践应用

文章目录 前言1. 安装部署DolphinScheduler1.1 启动服务 2. 登录DolphinScheduler界面3. 安装内网穿透工具4. 配置Dolphin Scheduler公网地址5. 固定DolphinScheduler公网地址 前言 本篇教程和大家分享一下DolphinScheduler的安装部署及如何实现公网远程访问,结合内…

MES系统与其他系统的集成:提升制造业智能化的关键路径

在当今高度竞争的制造业环境中,企业对于生产效率、质量控制、资源优化以及快速响应市场变化的需求日益迫切。制造执行系统(MES)作为连接企业计划层与车间控制层的重要桥梁,其在提升生产透明度和优化生产流程方面发挥着不可替代的作…

DOM元素可编辑自定义样式获取编辑后的数据

内容比较多,好好看看,收获匪浅 前言:有这么一个场景,比如一个dom元素是可以编辑的,并且编辑样式得自己写一下,这时候我们考虑单独写一套div来控制编辑样式和编辑的内容。内部有很多的span节点需要渲染&…

elasticsearch 查询超10000的解决方案

前言 默认情况下,Elasticsearch集群中每个分片的搜索结果数量限制为10000。这是为了避免潜在的性能问题。 但是我们 在实际工作过程中时常会遇到 需要深度分页,以及查询批量数据更新的情况 问题:当请求form size >10000 时&#xff0c…

Linux环境下Oracle 11g的离线安装与配置历程

在成功体验了 Windows 版本的Oracle 11g 后,这几天心血来潮,决定再挑战一下Linux 环境下的安装,特别是在考虑到部门内部虚拟机无法联网的情况下,我选择了在CentOS 7上进行离线安装。这次安装之旅,主要参考了下面大佬的…

异步日志:性能优化的金钥匙

一、背景 2024 年 4 月的一个宁静的夜晚,正当大家忙完一天的工作准备休息时,应急群里“咚咚咚”开始报警,提示我们余利宝业务的赎回接口成功率下降。 通过 Monitor 监控发现,该接口的耗时已经超过了网关配置的超时阈值(2s)&#…

【验收支撑】软件系统验收计划书(直接套用原件doc)

编写软件验收计划是软件开发过程中的一个关键步骤,其重要性体现在以下几个方面: 明确验收标准:软件验收计划详细列出了验收的标准、测试方法、测试环境等,确保所有相关人员对验收的期望和要求有清晰的认识。这有助于避免在验收阶段…

JavaWeb系列二十一: 数据交换和异步请求(JSON, Ajax)

文章目录 官方文档official documents官方文件官方文件official documentsJSON介绍JSON快速入门JSON对象和字符串对象转换应用案例注意事项和细节 JSON在java中使用说明JSON在Java中应用场景应用实例 Ajax基本介绍Ajax是什么Ajax经典应用场景 Ajax原理示意图传统的web应用Ajax原…

用微客云搭建一套外卖霸王餐系统赚CPS佣金

在当下数字化快速发展的时代,外卖行业作为餐饮业的重要分支,正在经历着前所未有的变革。为了满足市场需求,提高用户体验和增加商户收入,越来越多的外卖平台开始寻求创新,其中,搭建一套高效、稳定且功能丰富…

昇思25天学习打卡营第19天|CycleGAN图像风格迁移互换

CycleGAN图像风格迁移互换 模型介绍 模型简介 CycleGAN(Cycle Generative Adversarial Network) 即循环对抗生成网络,来自论文 Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 。该模型实现了一种在没有配对示例的情况下学习将…

jenkins打包java项目报错Error: Unable to access jarfile tlm-admin.jar

jenkins打包boot项目 自动重启脚本失败 查看了一下项目日志报错: Error: Unable to access jarfile tlm-admin.jar我检查了一下这个配置,感觉没有问题,包可以正常打, cd 到项目目录下面,手动执行这个sh脚本也是能正常…

本地Kali系统开启SSH服务并使用内网穿透生成公网地址实现ssh远程连接

文章目录 前言1. 启动kali ssh 服务2. kali 安装cpolar 内网穿透3. 配置kali ssh公网地址4. 远程连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 前言 本文主要介绍如何在本地Kali Linux系统启动ssh服务,并结合cpolar内网穿透软件生成公网地址,轻松…

提示词工程(Prompt Engineering)是什么?

一、定义 Prompt Engineering 提示词工程(Prompt Engineering)是一项通过优化提示词(Prompt)和生成策略,从而获得更好的模型返回结果的工程技术。 二、System message 系统指令 System message可以被广泛应用在&am…

平凯星辰黄东旭出席 2024 全球数字经济大会 · 开放原子开源数据库生态论坛

7 月 5 日,以“开源生态筑基础,数字经济铸未来”为主题的 2024 全球数字经济大会——开放原子开源数据库生态论坛在北京成功举办。平凯星辰(北京)科技有限公司联合创始人黄东旭发表了题为《TiDB 助力金融行业关键业务系统实践》的…