历史上的今天
返回首页

历史上的今天

今天是:2025年01月15日(星期三)

正在发生

2019年01月15日 | STM32中断设置以及中断优先级设置

2019-01-15 来源:eefocus

最近,在做一个智能锁的项目,由于,今天碰到了一个关于中断的问题,因此,又回来好好啃一下中断配置的知识,俗话说:磨刀不误砍柴工。问题是什么呢?项目中我用到了一个触摸键盘TTP229,结果在测试键盘时,不能够输入密码?最终,调试出bug就是由于中断优先级的影响。


本项目使用到的是STM32F030C8型号的MCU,我们可以从官方下载到的标准库文件中的启动汇编文件中,查看到本型号单片机的外部中断向量表。(如下图所示)



首先,我们了解一下NVIC是什么,在core_cm0.h文件中的标准库中的NVIC结构体。



其中,我们一般只用到ISER、ICER、IP这3个寄存器。ISER用于使能中断,ICER用来清除中断,IP用来设置中断优先级。


其次,我们了解一下中断优先级,中断优先级寄存器NVIC_IPRx,本寄存器宽度为8位,原则上每个外部中断可配置的优先级为0~255,实际上精简了,只用到了它的高4位。这4位,又被分成了抢占优先级和响应优先级两组,然后,中断优先级有分为以下几种情况:


1、抢占优先级不同,会涉及到中断嵌套,抢占优先级高的会优先抢占优先级低的,优先得到执行。(注意:优先级数字越小,优先级越高)


2、抢占优先级相同,不涉及到中断嵌套,响应优先级不同,响应优先级高的先响应。(例如:两个中断同时响应,这里就会先执行响应优先级高的那个中断)(注意:优先级数字越小,优先级越高)


3、抢占优先级和响应优先级都相同,则比较它们的硬件中断编号,中断编号越小,优先级越高。(硬件中断编号从中断向量表当中查看)


中断优先级分组,因为中断优先级只使用了高4位,所以,中断优先级的分组分别有以下几种情况:


优先级分组


抢占优先级


响应优先级


描述


NVIC_PriorityGroup_0


0


0到15的取值


高4位全部是响应优先级,无抢占优先级


NVIC_PriorityGroup_1


0到1的取值


0到7的取值


抢占优先级为1位,响应优先级为3位


NVIC_PriorityGroup_2


0到3的取值


0到3的取值


抢占优先级为2位,


响应优先级为2位


NVIC_PriorityGroup_3


0到7的取值


0到1的取值


抢占优先级为3位,响应优先级为1位


NVIC_PriorityGroup_4


0到15的取值


0


高4位全部是抢占优先级,无响应优先级


 


最后,总结一下中断编程的三步曲:


第一步:使能外设某个中断,具体由对应的中断使能位控制。


(例如:我们使用到GPIO之前必须开启GPIO端口的时钟,用到EXTI必须开启AFIO时钟)


第二步:初始化NVIC_InitTypeDef结构体,配置中断优先级分组,设置抢占优先级和响应优先级,使能中断请求。


库函数:


NVIC_IRQChannel()设置不同的中断源,在IRQn_Type IRQn结构体寻找自己对应的中断源。


NVIC_IRQChannelPreemptionPriority()设置抢占优先级


NVIC_IRQChannelCmd() 中断使能或者取消使能


第三步:编写中断服务函数,在stm32f0xx_it.c文件中,都有一个根据中断向量表,实现的一个空的中断服务函数,需要我们自己重新编写。


推荐阅读

史海拾趣

Applied Micro Circuits (MACOM)公司的发展小趣事

在经历了多次的收购与转手后,MACOM公司重新获得了独立地位,并开始了新的发展历程。公司推出了首个GaN功率器件,这一技术创新在行业内引起了广泛关注。随后,MACOM继续通过收购微波和射频公司MIMIX以及高速光通信公司Optomai来扩展其业务范围。这些举措不仅增强了公司的技术实力,也为其在全球市场上取得竞争优势奠定了基础。

Green Power Solutions公司的发展小趣事
电解电容漏液、击穿或老化也会影响稳压器的性能。
Alutronic Kuhlkorper Gmbh & Co Kg公司的发展小趣事
安装完毕后,仔细检查电路连接是否正确,然后通电测试稳压器的输出电压和稳压精度是否正常。
德芯半导体(Doeshare)公司的发展小趣事

德芯半导体自成立以来,就致力于半导体技术的研发与创新。公司拥有一支由电子学材料学博士、硕士和教授组成的专家团队,他们不断在半导体MEMS技术上取得突破。这些技术创新不仅推动了产品的发展,还使德芯半导体在智能家居、智能制造等领域的应用中取得了显著的成绩。公司通过与国内外先进企业的合作,采用OEM的合作方式,委托完成关键的工序工艺,确保了产品的高品质。

DSP Group Inc公司的发展小趣事

随着全球市场的不断变化和竞争的加剧,DSP Group不断调整其全球化布局和战略转型。公司先后在德国、英国等地设立了研发中心和办事处,加强了与国际市场的联系和合作。同时,DSP Group还积极寻求与其他公司的合作和并购机会,以进一步拓展其业务领域和市场份额。通过这些举措,DSP Group在全球范围内建立了广泛的销售网络和合作伙伴关系,为其未来的发展奠定了坚实的基础。

以上五个故事概述了DSP Group Inc公司在电子行业中发展起来的关键阶段和重要事件。这些故事不仅展示了DSP Group在技术创新、市场拓展和全球化布局方面的努力和成果,也反映了电子行业发展的趋势和变化。

FUJI公司的发展小趣事

为了进一步拓展业务领域和市场份额,DSP Group于2021年与Synaptics公司进行了合并。这次合并使DSP Group能够借助Synaptics在触控、显示和人机交互技术方面的优势,进一步拓展其在物联网、智能家居等领域的应用。同时,合并后的新实体也通过资源整合和优势互补,实现了更高的运行效率和更大的市场竞争力。

问答坊 | AI 解惑

基于单片机多机通讯系统设计

江湖救急!!请各位高手,大侠出手帮忙,在下万分感激。 前提  :  串行通讯 要求:            1.一个主机和4个子机连接;             ...…

查看全部问答>

5V电路的保护

前两天调试一块电路板,由于板子本身没有做防插错设计,导致将5V和12V的电源插插反。结果5V电路部分有几个IC烧坏,为了避免这样的情况再次发生,我目前可采取的措施有2个。 1、对电路板本身做防错设计; 2、对5V电源部分加TVS管。 这样,有几个 ...…

查看全部问答>

对MSP430学习的疑惑

请教高手给我指导以下MSP430F149 的定时器的运用,怎样实现其最基本的定时功能,有程序最好,谢过了!…

查看全部问答>

做数字电视机顶盒要具体哪些知识?(嵌入式软件工程师)

希望大家介绍下,该看哪些书,我是转入嵌入式这行的。希望大家多多关照,谢谢。…

查看全部问答>

猎头职位:北京世界五百强诚聘symbian高级研发-c++

猎头职位:北京世界五百强诚聘symbian高级研发-c++ 有相应的具体JD 客户是世界五百强外资,做智能手机symbian系统的研发 一般要求硕士5年经验以上,具体看个人资质 请有意者速速联系 msn:jessi.wang@hotmail.com e-mail:weiyangwj@sina.com ...…

查看全部问答>

FPGA是Xilinx好,还是Altera好啊?

这个问题总有人在问。 我的感觉就像在问:CPU是Intel好还是AMD好?有很多东西, 你是无法说好或者不好的。就像孩子看电影电视, 常常问:这个是好人还是坏人? 现在的影视剧中角色的好坏也已经不像解放初期电影那样的脸谱化、模式化、单一化,甚至 ...…

查看全部问答>

电瓶车防盗装置电路原理

求电瓶车的防盗装置的电路原理图,发送和接受各电路原理图,解码程序,谢谢!发送能和单片机做遥控小车吗?求思路! …

查看全部问答>

关于flag的疑问

我在main函数中 Sem_F=OSFlagCreate(0,&err);   我在第一个任务中   for (;;) {      OSFlagPend(Sem_F,(OS_FLAGS)3,0,0,&err);   我在第二个任务末尾      & ...…

查看全部问答>

大家有没有自己写本书的想法?

我要写一本书,是不是有点意向天开?…

查看全部问答>

方波输出做成正弦波输出有啥办法

请教高手,如果做DC/AC的时候把以往做的方波输出做成正弦波输出,谁有好的办法吗?…

查看全部问答>