首页 » 互联网 » 既然CPU不能产生中断那外部中断和内部中断是咋回事_优先级_事宜

既然CPU不能产生中断那外部中断和内部中断是咋回事_优先级_事宜

少女玫瑰心 2024-12-03 20:32:05 0

扫一扫用手机浏览

文章目录 [+]

现实中上,一样平常来说,咱们在利用51与STM32时所说的外部中断和内部中断都是一种中断,都是必要经由中断掌握器来触发CPU运行中断程序,包含定时器中断、串口中断等等(内部中断),EXIT中断引脚、复位引脚(外部中断),且严格来说,是不包括所谓的内部外部中断这些术语的,都应只称为中断。

可能会以为定时器串口这些是在51之类的处理器内部产生的,就以为其是内部中断,然而,这类处理器,是在内部集成了诸多外设的,如果定时器,串口,这些外设加上真正的CPU与其它掌握器,共有构成了你此时看到的51芯片,它有一个专有名词,叫作MPU。

既然CPU不能产生中断那外部中断和内部中断是咋回事_优先级_事宜 既然CPU不能产生中断那外部中断和内部中断是咋回事_优先级_事宜 互联网

不过,也不能说CPU就不能够做一些事情来像中断一样打断程序运行,它有一种独特的功能,叫作自陷,和中断很像,也是通过在总线上产生一个旗子暗记来让CPU相应,但是它自己产生的,同样它也有相应的向量表,但是是不可被屏蔽的,自陷常日被拿来处理缺点,如果调用造孽地址啊之类的。

既然CPU不能产生中断那外部中断和内部中断是咋回事_优先级_事宜 既然CPU不能产生中断那外部中断和内部中断是咋回事_优先级_事宜 互联网
(图片来自网络侵删)

文章相比拟较长,字数比较多,大家可以先打开头像关注我,之后逐步看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角玄色字体加我也能领取哦。
最近比较闲,带做毕设,带学生参加省级或以上比赛///

外部中断编程

EXTI的构造

在STM32F10X芯片中外部中断/事宜掌握器(EXTI)有20个用于产生中断/事宜要求的边沿检测器,其对应的每一根输入线都可以单独进行配置,选择“中断”或“事宜”类型以及触发事宜(上升沿触发、边沿触发和低落沿触发),还可以对中断开启屏蔽。
外部中断/事宜掌握器(EXTI)的构造如下图中所示:

EXTI紧张有两个功能,一个用来产生中断,另一个被用来产生事宜。

产生中断的线路由输入线开始,经边沿检测电路,到一个或门电路再到一个与门电路,末了至NVIC中断掌握器结束。
输入线可以通过寄存器设置为任何一个GPIO引脚,也可以是外设的韶光,在这部分紧张是通报一个电平变革的旗子暗记;边沿检测电路可以对触发办法进行选择,有上升沿触发、低落沿触发以及边沿触发三种办法;或门电路使得中断不仅可以由外部电路进行触发也可以通过软件来启动中断/事宜;与门电路用来决定是否产生中断,只有中断屏蔽寄存器端和或门电路真个有效旗子暗记均为1时,中断才会被产生;末了将挂起寄存器内容输入到NVIC中,实现系统中断事宜的掌握。
产生事宜的前三步与(1)相同,后经由一个与门电路,再经由一个脉冲发生器电路后结束。
个中与门电路是用来决定是否产生事宜,只有事宜屏蔽寄存器端和或门电路真个有效旗子暗记均为1时,事宜才会被产生;脉冲发生器电路只有在与门电路为有效旗子暗记1时才会输出一个脉冲旗子暗记;脉冲旗子暗记可被用于其他外设电路的利用,如定时器、ADC等等。

从EXTI框图中可以看出,中断的输出是NVIC掌握器,从而会导致系统运行中断做事函数,处于软件层面;韶光的输出是脉冲旗子暗记流向其他外设电路,处于硬件层面。

外部中断/事宜线 映射

STM32F10X的EXTI对用连接的外设如下表中所示:

EXTI线路 解释

EXTI 线 0~15 对应外部IO口的输入中断

EXTI 线 16 连接到PVD输出

EXTI 线 17 连接到RTC闹钟事宜

EXTI 线 18 连接到USB OTG FS唤醒韶光

EXTI 线 19 连接到以太网唤醒事宜

从表中可以看出EXTI可供外部IO利用的中断线有16根,但STM32F103芯片的IO口数量却有很多,每个GPIO端口均有16个管脚对应了16根中断线。
中断线每次只能连接在一个IO口上,因此就须要用到外部中断的映射功能,通过AFIO(复用IO)的外部中断配置寄存器1的EXTIx[3:0]位来决定对应的中断线映射到哪个GPIO端口上。
对付中断映射到GPIO端口的配置函数在stm32f10x_gpio.c和stm32f10x_gpio.h中,以是在利用标准库进行开拓时须要将这两个文件添加到工程中。

外部中断/事宜线 映射

EXTI干系的库函数在stm32f10x_exti.c和stm32f10x_exti.h文件中,利用库函数对外部中断进行配置的步骤如下:

使能IO口时钟,配置IO模式为输入;

开启AFIO时钟,设置IO口与中断线的映射关系;

首先须要使能AFIO时钟,其是挂载在APB2总线上的;

然后将GPIO映射到对应的中断线上;

配置中断分组(NVIC),使能中断;

初始化EXTI,选择触发办法;

配置好NVIC后就须要对中断线上的中断进行初始化,须要调用void EXTI_Init(EXTI_InitTypeDef EXTI_InitStruct)函数,个中构造体EXTI_InitTypeDef的成员变量有:

EXTI_Line: 可配置参数为EXTI0~EXTI20;

EXTI_Mode: 可配置为EXTI_Mode_Interrupt(中断模式)和EXTI_Mode_Event(事宜模式);

EXTI_Trigger: 可配置为EXTI_Trigger_Rising(上升沿触发)、EXTI_Trigger_Falling(低落沿触发)以及EXTI_Trigger_Rising_Falling(边沿触发);

EXTI_LineCmd: 配置ENABLE为使能,DISABLE为失落能。

5. 编写EXTI中断做事函数

中断做事函数便是当外部中断发生后,须要实行的一段用户程序,可根据需求进行编写。

运用示例

在本小节中利用一个按键来触发外部中断,在做事函数中实行点亮LED的程序,这个功能是很大略的,但也能够阐明清楚外部中断的配置过程,详细的代码如下所示(个中LED文件的代码在上一章节中已经给出):

exit.h

exit.c

key.h

key.c

main.c

总结

中断的观点: 中断是当单片机的CPU在实行程序时,外部或内部发生了一个随机事宜,导致CPU暂时中断正在实行的程序,转去实行一段分外的效劳程序也便是中断效劳子程序或中断处理程序。
当处理完效劳程序后,返回到被中断的程序连续实行,这样的一个过程就被称为中断,引发这个中断的事宜被称为中断源。
中断在stm32中还被分为相应的优先级,低优先级的中断会被高优先级中断所中断,即为中断的嵌套。
在Crotex-M3内核中支持256个中断,个中包括16个内核中断以及240个外部中断。
STM32F10X芯片中只用了个中的84个中断通道,包括16个内核中断和68个可屏蔽中断。

中断的优先级: STM32的每个中断通道都有一个中断优先级掌握字节(8位二进制数据,可设置为0~255,数值越小,优先级越高。
在STM32F103中只用个中高4位数据),其用于表达优先级的高4位又被分为抢占式优先级和相应式优先级。
在抢占式优先级相同情形下,高相应优先级的中断优先鄙倩相应。
优先级相同时,依照中断相应的顺序实行效劳程序,越靠前的先实行。
中断的有关功能必要通过NVIC(嵌套向量中断器)来配置。

中断的配置: 首先使能某个外设中断;其次设置中断优先级分组,初始化NVIC_InitTypeDef布局体,设置抢占优先级和相应优先级,使能中断要求;末了编写中断效劳函数。

对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有须要的童鞋找我拿就像,免费的,私信我“林老师”就可以拿~点击打开我的头像就能领取

相关文章

酷冷至尊 ML360 SUB-ZERO 评测_水冷_至尊

针对未来的 “核战”,酷冷至尊最近正式面向海内市场推出了针对英特尔十代酷睿处理器的水冷旗舰产品——酷冷至尊 MasterLiqui...

互联网 2024-12-29 阅读0 评论0

探索音乐混音的艺术_以“doit”混音为例

音乐混音作为音乐制作的重要环节,对于音乐的整体效果起着至关重要的作用。近年来,随着音乐技术的不断发展,混音技巧日益丰富。本文以“d...

互联网 2024-12-29 阅读0 评论0

提升IT协作能力,构建高效团队的核心要素

随着信息技术的飞速发展,IT行业在现代社会中扮演着越来越重要的角色。在这个知识经济时代,企业要想在激烈的市场竞争中立于不败之地,就...

互联网 2024-12-29 阅读0 评论0