历史上的今天
返回首页

历史上的今天

今天是:2024年08月23日(星期五)

正在发生

2019年08月23日 | 【STM32F103】中断综述

2019-08-23 来源:eefocus

一、中断内核: 


STM32的中断很强大,每个外设都可以产生中断,F103在内核水平上搭载了异常响应系统,系统异常有8个(算上RESET和HardFault也就10个),外部中断有60个,但是根据NVIC(嵌套向量中断控制器,控制整个芯片中断相关的功能),IP(中断优先级寄存器)数组中预留了240个位置(NVIC结构如上图),可见眼光之远,用于扩展,这是STM32F103用不到这么多。


如果以后要找跟内核相关的函数,都存在core_cm3.c和misc.c中,包括NVIC的函数的声明,但是其具体的库函数内容并不是和固件库头文件core_cm3.h一致(不在core_cm3.c),而是放在库函数的misc.c中,这点需要注意。


二、中断优先级的定义和分组:

 

 三、中断编程的顺序:


1、使能中断请求


如何使能,需要配置哪个寄存器?


注意:这里与NVIC中的中断使能寄存器不是等同概念,中断使能可以理解成有2个大门,外设使能(小门,比如串口有发送完成中断,接收完成中断,这两个中断由串口控制寄存器的相关中断使能位来控制)和NVIC(大门,接受请求)。


2、配置中断优先级分组


如何配置,需要配置哪个寄存器?


通过NVIC_PriorityGroup函数。


3、配置NVIC寄存器,初始化NVIC_InitTypeDef;(定义在misc.h中,成员如下)


1-NVIC_IRQChannel:指定中断源(中断类型列表参考STM32F10X.H中已列举给出)             


2-NVIC_IRQChannelPreemptionPriority:抢占优先级(根据分组表和选择来给) 


3-NVIC_IRQChannelSubPriority:子优先级(根据分组表和选择来给)


4-NVIC_IRQChannelCmd:使能或者失能(内核使能,相当于上面说的大门,enable或disable)


4、编写中断服务函数


1-中断服务函数名要怎么写?写错了怎么办?


在启动文件的中断向量表中,将中断函数名称都已经初始化好了,由C语言特点可知,函数的名称对应于函数的地址,但是这些函数的内容都是空的,都是B. (启动文件是汇编程序)表示无限循环,如果自己写了函数,但是写错了,系统就在中断向量表中找不到中断服务函数的入口地址,但是电脑不是人,不会对你写错的函数报错,因为程序有无意义电脑不能识别,它只会自动去系统里执行这个循环空函数,所以自己函数的名称一定与启动文件中的名称相对应。


2-中断服务函数要写在什么地方?


为了编程方便管理,我们可以把程序直接可以写在中,内核的函数已经给了,如果外设中断函数可以自己继续补充。


四、中断小结


STM32F10X中断的方法还是比较清晰的,和单片机类似,多了一个优先级嵌套和分组的功能,另外要注意一些使用库函数编程的细节即可,后续再通过实验例子来测试各类中断的具体使用方法。

推荐阅读

史海拾趣

巴丁微公司的发展小趣事

巴丁微深知人才是企业发展的核心动力。因此,公司始终注重团队建设与人才培养。公司拥有一支由行业精英组成的骨干团队,他们在集成电路设计、研发、销售等方面具有丰富的经验和深厚的专业知识。

同时,巴丁微也积极引进和培养新人才,通过定期的培训和学习机会,提升员工的技能水平和综合素质。公司还建立了完善的激励机制,鼓励员工勇于创新、敢于担当,为企业的发展贡献智慧和力量。

通过以上五个故事,我们可以看出巴丁微在电子行业发展的历程中,始终坚持以技术创新为核心,不断提升产品质量和市场竞争力。同时,公司也注重团队建设与人才培养,为企业的可持续发展提供了有力保障。未来,我们有理由相信巴丁微将继续在电子行业中取得更加辉煌的成就。

请注意,以上故事是基于公开资料编写的,可能与实际情况存在细微差别。如需获取更详细和准确的信息,建议直接联系巴丁微公司或查阅相关官方资料。

Hongfa公司的发展小趣事

为了推动公司的进一步发展,宏发公司于2008年进行了股份制改造,并成立了“厦门宏发电声股份有限公司”。2012年,公司成功上市,通过资本市场获得了更多的资金支持和发展动力。上市后,宏发继续加大在技术研发、市场拓展和产能提升等方面的投入,不断巩固和扩大其在继电器行业的领先地位。同时,公司还积极履行社会责任,为行业发展和地方经济做出了积极贡献。

GD Rectifiers Ltd公司的发展小趣事

面对数字化时代的到来,GD Rectifiers Ltd主动拥抱变革,积极推进数字化转型。公司投入巨资建设了先进的数字化生产管理系统和客户关系管理系统,实现了生产过程的智能化和透明化。通过数据分析和挖掘技术,公司能够更准确地把握市场需求和客户需求的变化趋势,为产品研发和市场营销提供有力支持。同时,公司还加强了与供应商和客户的数字化连接和协作,提高了供应链的协同效率和响应速度。数字化转型的成功实施为GD Rectifiers Ltd注入了新的活力,进一步提升了公司的市场竞争力和行业地位。

AD Semiconductor公司的发展小趣事

GD Rectifiers Ltd在电子行业初期便以其卓越的技术创新能力崭露头角。公司在成立之初便专注于电力电子整流器的研发,通过不断优化电路设计和材料选择,成功推出了具有高效率和低损耗特性的整流器产品。这一技术创新不仅帮助公司在市场上建立了差异化竞争优势,还吸引了大量对电力效率有高度要求的客户。随着市场需求的不断增长,GD Rectifiers Ltd逐渐扩大了产品线,涵盖了更广泛的应用领域,进一步巩固了其市场地位。

鸿展光电(GPO)公司的发展小趣事

随着全球对环境保护问题的日益关注,GD Rectifiers Ltd积极响应并践行绿色环保理念。公司投入大量资源进行绿色产品的研发和生产,推出了一系列符合环保标准的整流器产品。这些产品不仅具有高效、节能的特点,还大幅降低了生产和使用过程中的环境污染。同时,公司还加强了对废弃物的处理和回收利用工作,努力实现生产全过程的绿色化。GD Rectifiers Ltd的环保行动赢得了社会各界的广泛赞誉和支持,为公司的可持续发展奠定了坚实基础。

晨晶电子(Chenjing Electronics)公司的发展小趣事

晨晶电子始终将品质放在首位,坚持以客户为中心的服务理念。公司建立了严格的质量管理体系,从原材料采购到生产过程控制,再到产品出厂检验,每一个环节都严格把关,确保产品的品质稳定可靠。正是凭借这种对品质的执着追求,晨晶电子赢得了客户的广泛认可和好评,也为企业赢得了良好的口碑。

问答坊 | AI 解惑

电子大赛论文写作格式

本帖最后由 paulhyde 于 2014-9-15 09:16 编辑 大赛临近,希望对大家有所帮助  …

查看全部问答>

单片机选择的原则

单片机选择的原则---WORD…

查看全部问答>

UcosII的外中断问题

两个任务: task1:优先级5    LED灯闪烁 task2:优先级6    测试外中断 当我按下外中断以后,UcosII就老跑空闲任务 为什么?可能是那的错??…

查看全部问答>

怎样让cE 6.0响应VB net的textbox输入

我用VB.net开发一个小程序 有一个teXtboX的输入框 我想让程序在cE6下一点该输入框就跳出输入键盘 该怎么做呢 谢谢…

查看全部问答>

重新写下,急!有能提供1mA电流的芯片吗?精度在1%(10uA)即可!!

我要给测量低温的电阻提供1mA的电流,然后测量其电压确定当前温度电流大于1mA太多的话, 测量低温的电阻会发热,电阻特性就变了,测不准低温,所以最好有能准确提供1mA电流的芯片…

查看全部问答>

什么是单片机?

常常听到别人说单片机,到底什么是单片机,还有C和单片机有什么关系呀?…

查看全部问答>

想和單片機高手一起討論下這個簡單串口中斷程序的問題所在!!!

我編寫了一個串口中斷匯編程序,不復雜,調試也沒有出現問題,但是就是工作不了,我想和大家討論下究竟是什么錯誤導致它運\行出錯~請大家幫忙... T2CON EQU 0C8H T2MOD EQU 0C9H TR2 BIT T2CON.2 RCAP2L EQU 0CAH RCAP2H EQU 0CBH TH2 EQU 0C ...…

查看全部问答>

[IAR4.42A]stm32上电默认初始化会清空内存么?

                                  …

查看全部问答>

3250开发板链接划卡键盘有问题,请大家帮忙看看

3250开发板链接划卡键盘有问题,请解惑    划卡键盘为大元752u。在Ubuntu及XP 下均能正常使用,在开发板上只亮灯,键盘不反应。在Ubuntu下设备号如下:linux:/dev/input/by-id$ lsusb-413c_2003-event-kbd设备ID等相 ...…

查看全部问答>