news 2026/6/10 0:24:57

STM32F0实战:基于HAL库开发【2.3】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32F0实战:基于HAL库开发【2.3】
9.2.1 事件线概述

在EXTI中引入了“事件”这一概念。与中断相比,事件的产生不会中断主程序的进程,但可以让处于功耗管理模式下的微控制器唤醒。EXTI管理的异步事件和中断包括以下两类。

·来自引脚的外部中断/事件:这类中断和事件大多与GPIO相关联,涉及端口引脚的输入或输出,如GPIO端口电平变化、电源电压变化、RTC报警输出及时间戳输入、比较器输出等,引脚上的电平变化可以引发中断,也可以产生相关事件用于唤醒CPU。

·来自外设的唤醒事件:这类事件是由部分通信外设(USART、I2C、CEC)在系统处于运行模式或允许唤醒的停止模式时产生的,它们同样可以用于唤醒CPU。

EXTI管理的每一种中断和事件称为事件线。EXTI总计管理着32个事件线(区别于NVIC管理的32个外部中断),其中包含23个外部事件线和9个内部事件线。事件线统一由NVIC管理,多个事件线可以占用同一个中断向量号。EXTI管理的事件线具体详见表9-3。

表9-3 EXTI管理的事件线

9.2.2 事件线的控制逻辑

每个事件线(EXTI0~EXTI31)都有专用的中断屏蔽寄存器EXTI_IMR和专用的事件屏蔽寄存器EXTI_EMR,用于配置某一个线路上的事件/中断请求。对于外部事件/中断(EXTI0~EXTI17、EXTI19~ EXTI22和EXTI31),有相应的边沿触发选择寄存器EXTI_RTSR和EXTI_FTSR,用于选择触发的有效边沿。

EXTI管理的外部事件/中断还有相应的软件中断事件寄存器EXTI_SWIER和挂起寄存器EXTI_PR,软件中断事件寄存器用于软件生成相应事件或中断,而挂起寄存器则用于查询发生了哪类外部事件或中断。当某一个外部中断或事件发生时,该中断可以将相应的挂起位持续置位,直至软件将挂起位清除。GPIO口连接到16个外部中断/事件线,如图9-4所示,外部事件/中断的控制逻辑如图9-5所示。

相比外部事件或中断,内部事件线总是上升沿触发,所以不需要设置触发边沿,也没有特定的挂起位。另外,内部事件线只有在停止模式下才被使能,当系统处于运行模式时将会自动禁止内部各线的功能。

9.2.3 事件线的配置方法

通过配置事件线可以产生中断或事件,具体方法如下:

1)产生外部中断:根据需要检测的边沿,设置2个边沿触发选择寄存器,并且在中断屏蔽寄存器的相应位写1以允许该中断请求。当外部中断线上发生了预期的边沿时将产生一个中断请求,与之对应的挂起位也随之被置1,对挂起寄存器的相应位写1可以清除该挂起位。另外,还需要配置与该EXTI线对应的NVIC中断通道的使能位,使该中断线的中断请求可以被正确地响应。

2)产生外部事件:根据需要的边沿检测,设置2个边沿触发选择寄存器,同时在事件屏蔽寄存器的相应位写1以允许该事件请求。当事件线上发生了期待的边沿时将产生一个事件请求脉冲,但对应的挂起位不会被置1。

3)软件产生外部中断/事件:对于外部中断线,一个中断/事件请求也可由软件对相应软件中断事件寄存器的相应位写1来产生。

4)产生内部中断/事件:对于内部线,触发沿都为上升沿,同样可以将中断或事件屏蔽寄存器的相应位写1来使能该中断或事件,但内部中断线没有相应的挂起位。这里需

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 7:38:13

Flutter for OpenHarmony 剧本杀组队App实战22:快速匹配功能实现

引言 快速匹配功能帮助用户自动寻找合适的队伍,无需手动浏览组队列表。本篇将实现带有匹配动画的快速匹配页面。快速匹配是现代社交应用的重要功能,通过算法自动配对用户,大大提升了用户体验和应用的活跃度。这个功能特别适合剧本杀组队场景…

作者头像 李华
网站建设 2026/6/6 7:24:47

云端VS本地 RFID资产管理系统怎么选?优缺点大揭秘

一、开篇:资产 “迷路”?RFID 系统部署抉择是关键 1.1 传统资产管理的 “老大难” 痛点 家人们,在企业的日常运营里,资产管理要是没做好,那可真是麻烦不断!就说传统的人工盘点方式,简直就是一…

作者头像 李华
网站建设 2026/6/6 7:33:48

大模型应用文本理解OpenAI使用入门篇

前言 本文介绍使用OpenAI完成特定文本理解任务。 构建环境 本地安装Ollama或通过阿里云百炼平台获取API_KEY ,https://bailian.console.aliyun.com/cn-beijing/?spma2c4g.11186623.0.0.2dab6323kanAoF&tabmodel#/api-key,配置到环境变量中后需要重启电脑生效。…

作者头像 李华
网站建设 2026/6/9 23:43:02

信号处理仿真:滤波器设计与仿真_18.实时信号处理仿真

18. 实时信号处理仿真 18.1 实时信号处理的基本概念 实时信号处理是指在信号采集或生成的同时进行处理,以满足特定的时延要求。在许多应用中,如通信系统、音频处理、视频处理等,实时处理是必不可少的。实时信号处理的关键在于系统能够在限定…

作者头像 李华
网站建设 2026/6/9 23:43:53

大厂迷思:为什么顶级工程师会产出难以维护的代码

当你终于通过几轮严苛的技术面试,加入一家享有盛誉的大型科技公司时,往往会对即将接触的代码库抱有极高的期待。你想象着整洁的架构、清晰的文档以及如教科书般完美的逻辑实现。然而现实往往极具冲击力:你所看到的可能是一个由无数补丁堆叠、…

作者头像 李华
网站建设 2026/6/9 23:41:10

多级缓存必要性

Java多级缓存设计:应对微博明星官宣的高并发场景 一、多级缓存原理与必要性 1.1 为什么需要多级缓存? 单级缓存的问题: 性能瓶颈:所有请求都打到同一缓存层,压力集中容错性差:缓存层故障直接影响整体可…

作者头像 李华