历史上的今天
返回首页

历史上的今天

今天是:2025年02月05日(星期三)

正在发生

2020年02月05日 | STM32单片机的外部中断和中断控制器的特点解析

2020-02-05 来源:elecfans

在外部中断和中断控制器中,我们首先阐述嵌套向量中断控制器(NVIC),他和处理器核的接口紧紧相连。可以实现低延时的中断处理和处理晚到的中断。主要具有以下几个特点:

1.60个可屏蔽中断通道;

2.16个可编程的优先等级;

3.低延时的异常和中断处理;

4.电源管理控制;

5.系统控制寄存器的实现。

其中每一个STM32系列芯片都会有一个产品向量表,博友们可以在相关 产品说明书中查看具体的中断问题。

STM32单片机的外部中断和中断控制器的特点解析

接下来介绍中断优先级

在M3中有两个优先级的概念-抢占优先级和响应优先级。每一个中断源都必须指定这两种优先级。这里的中断抢占其实和89C51差不多,高中断优先级可以抢占正在进行中断处理的低中断优先级,也就是我们所说的中断嵌套。学习过51单片机的人这一点应该不是很难理解。如果两个中断源的优先级相同,就没有嵌套一说。不过当两个中断同时到达时,就要按照他们的响应优先级的高低来决定先处理谁。在如果他们的抢占优先级和相应优先级都相同,就要根据他们在中断向量表中的前后顺序来决定先出来谁。

每一个中断源都需要指定这两种优先级,也就是说在中断配置中,必须两种优先级多要配置。所以说需要相应的寄存器位来记录每个中断的优先级。在M3中定义了8bit位用于设置中断源的优先级,但是也具有较少中断源时使用较少的寄存器位指定中断源的优先级,所以STM32把指定中断优先级的寄存器位减少到4位。具体分组为:

第0组:所有4为用于指定响应式优先级

第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应式优先级;

第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应式优先级;

第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应式优先级;

第4组:所有4位都用于指定抢占式优先级。

我们也可以通过调用STM32固件库中的函数NVIC_PritorityGroupConfig()来选择使用哪一组优先级分组方式。

我们用一个例子来说明如何指定中断源的抢占式优先级和响应式优先级。

//选择使用优先级分组1

NVIC_PritorityGroupConfig(NVIC_PritorityGroup_1);

//使能EXTI0

NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;

NVIC_InitStructure.NVIC_IRQChannelPreempTIonPriority = 1;//指定抢占优先级组别1

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//指定响应优先级0

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

//使能ENTI9_5

NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//指定抢占优先级组别1

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//指定响应优先级0

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);


其中要注意以下几点:如果指定的抢占式优先级别或响应优先级别超出了选定的优先级分组所限定的范围,会有其他的结果出现;

抢占式优先级别相同的中端源没有嵌套关系

如果某个中断源被指定为某个抢占式优先级别,又没有其他中断源处于同一抢占式优先组别,则可以为这个中断源指定任意有效的响应优先级别。

推荐阅读

史海拾趣

Exar [Exar Corporation]公司的发展小趣事

Exar公司自1971年在加利福尼亚州成立以来,最初以生产高性能、高可靠性的线性集成电路而著名。然而,随着技术的进步和市场的变化,Exar逐渐意识到通信领域的巨大潜力。因此,在1980年代初,公司开始专注于串行通信和数据存储解决方案,包括UARTs(通用异步收发器)和存储器ICs。这一转变不仅扩大了Exar的市场覆盖范围,也为其后续的发展奠定了坚实的基础。

Hitano Enterprise Corp公司的发展小趣事

Exar始终注重通过收购和合并来增强自身的技术实力和市场竞争力。例如,2012年Exar收购了Integrated Memory Logic Limited(iML),这一举措加强了其在存储和数据管理领域的地位。通过收购iML,Exar获得了更多的技术资源和市场份额,为其后续的发展提供了有力支持。

Astec [Astec America, Inc]公司的发展小趣事

随着全球环保意识的不断提高,Astec也开始关注绿色环保和可持续发展问题。公司积极采用环保材料和节能技术,推出了一系列绿色电源产品。同时,Astec还加大了对环保技术的研发力度,努力在保持产品性能的同时,降低生产过程中的能耗和排放。这些举措不仅有助于公司应对环保法规的挑战,还提升了公司的社会形象。

比亚迪(BYD)公司的发展小趣事

比亚迪的发展可以追溯到1995年,当时王传福创立了这家公司,最初专注于生产小型电池。在初创期,比亚迪通过模仿日本三洋和索尼的产品快速积累了生产经验。然而,王传福深知模仿不是长久之计,因此他果断地决定转向自主研发和创新。这一决策在日后证明是极其明智的。随着技术的不断积累,比亚迪于1997年开始量产锂离子电池,并成功实现了年销售额突破1亿元。这一里程碑标志着比亚迪在电池技术领域取得了重大突破,为其日后在电子行业的发展奠定了坚实基础。

台湾晶豪(ESMT)公司的发展小趣事

晶豪科技(ESMT)于1998年由赵瑚博士创立,公司自初创时就立志成为客户各类型内存产品及技术的供应者。经过数年的努力,公司在DRAM产品研发上取得了显著成果,广泛应用于PC外围、信息家电、消费性电子产品及通讯系统等领域。2002年3月,晶豪科技在台湾证券交易所成功挂牌上市(代号3006),这一里程碑事件为公司后续的发展奠定了坚实基础。

Genesis Microchip公司的发展小趣事

随着战后的经济复苏和科技的快速发展,GI开始积极寻求业务多元化和国际化的发展道路。公司不仅继续深耕电子技术领域,还逐渐涉足通信、计算机等多个领域,推出了包括通信设备、计算机硬件在内的多款新产品。同时,GI也积极开拓海外市场,通过设立分支机构、与当地企业合作等方式,成功将产品销往全球多个国家和地区。这一阶段的成功,使GI成为了名副其实的跨国电子巨头。

问答坊 | AI 解惑

串行通信接口典型应用举例

串行通信接口典型应用举例…

查看全部问答>

连接调试问题

   VS2005连接目标机(wince5.0),目标机需要运行相应的程序,才能连接上,这些程序是在开发机上哪得到的?…

查看全部问答>

44b0头文件位声明如何理解?

#define BIT_ADC                        (0x1) #define BIT_RTC                        (0x1…

查看全部问答>

CDMA模块哪种比较好呢?价格低一些

老板准备买个CDMA Modem,用来发短信…

查看全部问答>

修改DHCP的程序的问题

最近在做个项目,要用程序修改IP,SUBMASK,GATEWAY的地址,这个程序我作出来了,但是碰到一个问题,当我把静态的改回DHCP动态的时候发生了错误, 提示说是进行了一个非法操作,这是怎么回事呢?我在程序上是这样的一个思路,我先选择是静态的地址还是动态的 ...…

查看全部问答>

LPC1114+MP3+数码相框+电子书 原理图

最近准备用LPC1114做个MP3+数码相框+电子书,下面是初步设计的原理图,希望大家看看,设计上有些什么问题?先谢谢了。。。 …

查看全部问答>

抗干扰的声控开关电路图

如图所示为抗干扰声控开关电路。该电路由话筒S、选频放大器、单稳整形电路IC1、信号存储器IC2a与IC2b、可控硅交流开关SCR及脉冲清零电路IC4等组成。 电路中BG1为9014或3DG4M、3DG201、3DG401、3DG8A和3DG88等。BG2、BG3选用3DG12或3DG130。IC1、I ...…

查看全部问答>

zinc使用中的疑问,请斑竹高手回答

zinc6.1下,定义一个 zafstring *testString = new zafString();然后把testString  加到窗口中 ,在该 控件中输入数据,比如 12345,用程序获得该值  testString ->Text()为什么只能得到“1”,而不能得到整个字符串呢?有遇 ...…

查看全部问答>

学生求教一个问题

 本人大学生,期末结业考试需要讲述这个文献,但是专业课程没有涉及很深的传感器,比较迷茫,求教各位专家们!…

查看全部问答>

锂离子电池监控——需要冗余吗?

锂离子电池监控——需要冗余吗? 作者:Steven Boyle 简介 目前,混合动力汽车(HEV)、插电式混合动力汽车(PHEV)和纯电动汽车(EV)的开发工作与锂离子(Li-ion)电池的使用密不可分,许多OEM、电子设备供应商和电池制造商探讨的重点都集中在如何构建 ...…

查看全部问答>