STM32中断和事件的对比差异分析

发布者:WanderlustHeart最新更新时间:2024-03-12 来源: elecfans关键字:STM32  中断  事件 手机看文章 扫描二维码
随时随地手机看文章

事件是中断的触发源,开放了对应的中断屏蔽位,则事件可以触发相应的中断。

事件还是其它一些操作的触发源,比如DMA,还有TIM中影子寄存器的传递与更新;而中断是不能触发这些操作的,所以要把事件与中断区分开。当你只要产生中断而不想触发其它操作时,就可以用事件屏蔽寄存器实现。


在STM32中,中断与事件不是等价的,一个中断肯定对应一个事件,但一个事件不一定对应一个中断。


这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志19字样的注释,表示这样的线路共有19套.图中的蓝色虚线箭头,标出了外部中断信号的传输路径,首先外部信号从编号1的芯片管脚进入,经过编号2的边沿检测电路,通过编号3的或门进入中断挂起请求寄存器,最后经过编号4的与门输出到NVIC中断检测电路,这个边沿检测电路受上升沿或下降沿选择寄存器控制,用户可以使用这两个寄存器控制需要哪一个边沿产生中断,因为选择上升沿或下降沿是分别受2个平行的寄存器控制,所以用户可以同时选择上升沿或下降沿,而如果只有一个寄存器控制,那么只能选择一个边沿了.


按下来是编号3的或门,这个或门的另一个输入是软件中断/事件寄存器,从这里可以看出,软件可以优先于外部信号请求一个中断或事件,即当软件中断/事件寄存器的对应位为"1"时,不管外部信号如何,编号3的或门都会输出有效信号.


一个中断或事件请求信号经过编号3的或门后,进入挂起请求寄存器,到此之前,中断和事件的信号传输通路都是一致的,也就是说,挂起请求寄存器中记录了外部信号的电平变化.


外部请求信号最后经过编号4的与门,向NVIC中断控制器发出一个中断请求,如果中断屏蔽寄存器的对应位为"0",则该请求信号不能传输到与门的另一端,实现了中断的屏蔽.


明白了外部中断的请求机制,就很容易理解事件的请求机制了.图中红色虚线箭头,标出了外部事件信号的传输路径,外部请求信号经过编号3的或门后,进入编号5的与门,这个与门的作用与编号4的与门类似,用于引入事件屏蔽寄存器的控制;最后脉冲发生器的一个跳变的信号转变为一个单脉冲,输出到芯片中的其它功能模块.从这张图上我们也可以知道,从外部激励信号来看,中断和事件的产生源都可以是一样的.之所以分成2个部分,由于中断是需要CPU参与的,需要软件的中断服务函数才能完成中断后产生的结果;但是事件,是靠脉冲发生器产生一个脉冲,进而由硬件自动完成这个事件产生的结果,当然相应的联动部件需要先设置好,比如引起DMA操作,AD转换等;


简单举例:外部I/O触发AD转换,来测量外部物品的重量;如果使用传统的中断通道,需要I/O触发产生外部中断,外部中断服务程序启动AD转换,AD转换完成中断服务程序提交最后结果;要是使用事件通道,I/O触发产生事件,然后联动触发AD转换,AD转换完成中断服务程序提交最后结果;相比之下,后者不要软件参与AD触发,并且响应速度也更块;要是使用事件触发DMA操作,就完全不用软件参与就可以完成某些联动任务了。


总结:

可以这样简单的认为,事件机制提供了一个完全有硬件自动完成的触发到产生结果的通道,不要软件的参与,降低了CPU的负荷,节省了中断资源,提高了响应速度(硬件总快于软件),是利用硬件来提升CPU芯片处理事件能力的一个有效方法;


关键字:STM32  中断  事件 引用地址:STM32中断和事件的对比差异分析

上一篇:史上最全STM32调试步骤!
下一篇: 意法半导体二代STM32微处理器推动智能边缘发展,提高处理性能和工业韧性

推荐阅读最新更新时间:2024-11-09 10:02

013_STM32程序移植之_DS18B20
1. 测试环境:STM32C8T6 2. 测试模块:DS18B20模块 3. 测试接口: 1. DS18B20模块接口: DS18B20引脚 单片机引脚 VCC--------------------5V GND-------------------GND DATA------------------PB12 2. 串口使用串口一,波特率9600 单片机引脚 CH340引脚 VCC--------------------VCC GND-------------------GND PA9--------------------RXD PA10-------------------TXD 移植测试 测试串口一程序
[单片机]
013_STM32程序移植之_DS18B20
STM32定时器输出PWM 【自用】
PWM1输出模式配置: 1.配置IO(TIM3 PA6~7 CH1 CH2 GPIO_Mode_AF_PP复用推挽输出 50Mhz速度) /*void GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; //GPIOA and GPIOB clock enable RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //GPIOA Configuration: TIM3 channel 1 and 2 as alternate function push-pull GPIO_InitStructure.
[单片机]
STM32系列DAC的介绍与使用
前言 最近是因为有一个项目需要输出 0~10V 的信号量,而且 想着应该可以直接使用 STM32 的 DAC 来做,虽然不一定实际使用,但是也就来试试看吧。 说句实话,博主自己做的产品,不常用 DAC,所以 本文我们就来好好复习下 STM32 的 DAC ,从应用角度讲讲如何快速使用起来。 我是矜辰所致,全网同名,尽量用心写好每一系列文章,不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开! 一、STM32 带 DAC 的系列 目前博主产品使用的芯片为 STM32L051C8 系列,本来还想着直接CubeMX 设置一下,直接测试,才发现这个片片根本没有 DAC = =! 好吧,尴尬,后来查了下 L 系列确实都没有 D
[单片机]
<font color='red'>STM32</font>系列DAC的介绍与使用
s3c2440裸机-电阻触摸屏-3-触摸屏TSC初始化和中断服务程序框架
1. ADC中断产生流程 中断源: 这里是ADC和TSC共用一个中断源。 SRCPND表示哪个中断源产生了中断请求。 INTMODE:配置中断模式 配置中断屏蔽寄存器 中断挂起寄存器(用来显示当前优先级最高的、正在发生的中断, 需要清除对应位) 从SRCPND寄存器可以读到ADC和TSC复用的同一个中断源,那么如何区分呢? 可以从SUBSRCPND寄存器配置,如下: 当bit 9被置1时,表示TSC中断。那么我们需要打开subsrcmask寄存器 所以TSC中断的产生流程如下: 2. TSC编程实现   ①初始化T
[单片机]
单片机中断系统介绍_51单片机中断系统结构
什么是中断?就是打断当前要做的事,转而去执行别的事情。单片机中断就是当单片机正在执行程序的时候,突然某个按键按下了(产生外部中断),单片机就必须得去处理那个按键(中断的响应),看看是发生了什么事,按键处理完后继续回来执行程序(中断的返回)。 MCS-51单片机中断系统的结构 5个中断源的符号、名称及产生的条件如下。 INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。 INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。 T0:定时器/计数器0中断,由T0计满回零引起。 T1:定时器/计数器l中断,由T1计满回零引起。 TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。 整个中断系统的结
[单片机]
单片机<font color='red'>中断</font>系统介绍_51单片机<font color='red'>中断</font>系统结构
stm32 嵌入式开发 中ADC独立多通道DMA传输数据实验总结
主要知识点: DMA 数据传输 串口传输 通道引脚初始化 (一)、DMA 数据传输            1、外设到存储器传输            2、存储器到外设传输            3、存储器到存储器传输     外设一般为:ADC、SPI、I2C等。 存储器一般为:片内SRAM、外部存储器、片内FLASH等   DMA功能框图:8个流通道(DMA_SxCR ),每个流通到对应8个外设请求(CHSEL )     DMA 请求映射:分两种 DMA1请求映射、DMA2请求映射    特点:每一个外设请求只占用一个数据流通道,相同的外设请求可以占用不同的通道请求。       当该数据流通道
[单片机]
<font color='red'>stm32</font> 嵌入式开发 中ADC独立多通道DMA传输数据实验总结
STM32嵌入式系统设计的智能控制网络终端技术
  本文重点介绍基于STM32的智能嵌入式终端的网络控制功能的设计和实现。 智能网络终端是实现智能化管理的嵌入式终端设备。通常具有安全门禁系统和自动化控制的基本功能。   1智能网络通信实现方案   将嵌入式系统与Internet连接起来实现远距离信息获取和控制功能的本质是嵌入式系统本身能够实现TCP/IP网络通信协议。该协议的解决方案总体上可分为两大类。第一类是直接在嵌入式设备上实现TCP/IP,使之直接连上Internet。这实质上是由MCU及内部固化TCP/IP协议的芯片组成应用系统的核心,MCU可以直接拨号上网,这种方法的硬件电路相对简单,也不需要中间环节的支持。但是由于使用了TCP/IP协议芯片,因此需要大容量的程序
[单片机]
<font color='red'>STM32</font>嵌入式系统设计的智能控制网络终端技术
stm32之DMA中断
AD转换之DMA 1、DMA的配置 //DMA的配置 void DMA_Configuration(void) { /* 允许 DMA1 */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); /* DMA通道1*/ DMA_DeInit(DMA1_Channel1); DMA_InitStructure.DMA_PeripheralBaseAddr =(u32)( &(ADC1- DR)); //ADC1数据寄存器 DMA_InitStructure.DMA_MemoryBaseAddr = (u32)ADCCov; //获取ADC的数组 DMA_InitStructur
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved