历史上的今天
返回首页

历史上的今天

今天是:2024年12月10日(星期二)

正在发生

2018年12月10日 | STM32f103xxxxz中断理解笔记

2018-12-10 来源:eefocus

中断:在程序执行过程中产生了一个必须执行的外部因素时,程序就去执行外部因素对应的中断服务函数,完了再回到正常程序,这就是简单的理解中断。


但是当程序在处理中断服务函数时又产生另一个中断时就需要一个机制来调解:NVIC.


NVIC 即嵌套向量中断控制器(Nested Vectored Interrupt Controller)。在stm32f103中总共有70个中断源,包括10个内核中断和60个可屏蔽中断,具有16级的可编程的中断优先级,我们通常使用这60个可屏蔽中断,在配置中断的时候我们一般只用 ISER、ICER 和 IP 这三个寄存器,ISER 用来使能中断,ICER 用来失能中断,IP 用来设置中断优先级。


 一、使能。对于ISER中断使能寄存器组中,ISER[0]的 bit0~bit31 分别对应中断 0~31。ISER[1]的 bit0~27对应中断 32~59,所以ISER寄存器的其他寄存器组就没有实际作用,在使能中断的时候对应的bit需要设置为1.在ICER中断失能寄存器组中,对相应的中断位写1达到失能中断的作用。


ISPR[8]:是一个中断挂起控制寄存器组。通过置 1,可以将正在进行的中断挂起,而执行同级或更高级别的中断


ICPR[8]:是一个中断解挂控制寄存器组。通过设置 1,可以将挂起的中断接挂。写 0 无效。


IABR[8]:是一个中断激活标志位寄存器组。通过设置 1,则表示该位所对应的中断正在被执行。这是一个只读寄存器,通过它可以知道当前在执行的中断是哪一个。在中断执行完了由硬件自动清零。


IP[240]:是一个中断优先级控制的寄存器组。STM32 的中断分组与这个寄存器组密切相关。IP寄存器组由 240 个 8bit 的寄存器组成,每个可屏蔽中断占用 8bit,这样总共可以表示 240 个可屏蔽中断。而 STM32 只用到了其中的前 60 个。IP[59]~IP[0]分别对应中断 59~0。而每个可屏蔽中断占用的 8bit 并没有全部使用,而是只用了高4 位。这 4 位,又分为抢占优先级和子优先级。抢占优先级在前,子优先级在后。


二、分组。STM32有抢占优先级和响应优先级。低优先级的中断在执行时遇到高优先级的中断可以被响应,即执行完高优先级的中断后再执行低优先级中断。同级优先级不同时遇到时得按顺序执行,若同时遇到则要比较其子优先级的高低决定执行顺序。优先级分组有0-4组,抢占优先级和响应优先级都有0-4的选择,且数字越小优先级越高


三、NVIC在HAL库中相关函数。


HAL_NVIC_SetPriorityGrouping  函数:设置中断优先级分组,该函数有一个形参对应5个结果。


HAL_NVIC_SetPriority函数:设置中断优先级,函数有三个形参,作用分别是选择中断源,抢占优先级,响应优先级


HAL_NVIC_EnableIRQ函数:使能中断,函数有一个形参,选定中断源。


HAL_NVIC_DisableIRQ函数:失能中断,参数作用同上。


HAL_NVIC_SystemReset函数:系统复位。


配置中断的步骤:


1、设置优先级分组。


2、设置中断并使能。


3、编写中断服务函数。


4、启动接收中断。


EXTI--外部中断/事件控制器


STM32F103ZET6有7个GPIO外设,每个外设对应0-15共16个GPIO引脚,对应16条外部中断线。每个输入线可以独立配置输入类型(脉冲或挂起)和对应的触发事件(上升沿,下降沿,双边沿)。注:同一条线不能被多组GPIO外设同时使用,互联性产品必须先使能AFIO时钟。


EXIT线16连接到PVD输出。


EXTI线17连接到RTC警告事件。


EXTI线18连接到USB唤醒事件。


前面三条线属于事件请求,使用外部中断需要开启AFIO中对应的中断功能。


总共19条外部中断线。


EXTI在功能上可分为产生中断及产生事件。


在成功触发外部中断时,HAL库中会执行外部中断回调函数HAL_GPIO_EXTI_Callback。而一般操作外设则放在回调函数中。


此上均为参考资料后做的一点笔记,若有冒犯愿作者告知。



推荐阅读

史海拾趣

台湾凯励(Carli)公司的发展小趣事

在电子行业中,品质控制和质量管理是企业生存和发展的关键。凯励公司深知这一点,建立了严格的质量管理体系和检测机制。公司从原材料采购到生产制造、产品检测等各个环节都严格把控品质,确保产品的稳定性和可靠性。此外,凯励公司还引进了先进的生产设备和检测仪器,提高了生产效率和产品质量。

Array Microsystems Inc公司的发展小趣事

为了支持公司的快速发展和技术创新,Array Microsystems Inc高度重视人才引进和团队建设。公司积极招聘业内优秀的技术人才和管理人才,为他们提供良好的工作环境和福利待遇。同时,公司还注重员工的培训和晋升机制,鼓励员工不断学习和成长。这些措施使得Array Microsystems Inc拥有了一支高素质、专业化的团队,为公司的发展提供了有力的人才保障。

CUI公司的发展小趣事

在全球化的背景下,电子行业中的CUI技术也呈现出国际合作与竞争并存的局面。一些国内企业通过与国际知名企业的技术合作,引进先进的CUI生产线和工艺,提高了自身的技术水平和市场竞争力。同时,国际市场的竞争也促使国内企业不断创新,寻求差异化的发展道路。

Advanced Electronic Packaging公司的发展小趣事

随着公司技术的不断进步,Advanced Electronic Packaging公司开始寻求与行业内知名厂商的合作机会。通过与一家全球领先的电子产品制造商达成战略合作,公司成功将其先进的封装技术应用于对方的高端产品线中。这一合作不仅提升了合作双方的产品竞争力,还为Advanced Electronic Packaging公司带来了可观的利润回报。此后,公司陆续与多家知名企业建立了合作关系,进一步巩固了其在电子封装领域的市场地位。

Fenghua (HK) Electronics Ltd公司的发展小趣事

为了降低成本、提高生产效率,Fenghua (HK) Electronics Ltd不断优化供应链管理。公司与供应商建立了长期稳定的合作关系,实现了原材料的及时供应和成本控制。同时,公司引入了先进的生产管理系统,对生产过程中的各个环节进行精细化管理,确保了产品质量的稳定性和一致性。

Harvatek Corporation公司的发展小趣事

背景:随着全球经济的一体化和电子信息产业的快速发展,Hantronix意识到市场拓展的重要性。公司开始积极寻求国际合作机会,拓展其全球业务版图。

发展:Hantronix通过参加国际展会、建立海外销售网络等方式,成功将产品推向全球市场。其高品质的产品和优质的服务赢得了众多国际客户的信赖和好评。同时,公司还加强了与国际知名企业的合作,共同推动电子显示技术的进步和应用。

问答坊 | AI 解惑

点击论坛链接时遇到的小麻烦,还请遇到过的给写提示!

在点击的好多链接时总是出现未能查找到,是我的浏览器设置问题还是什么地方? 反正挺麻烦的,每次只能在论坛的主页上点击各个帖子,那位兄台知道的就告诉兄弟一下吧…

查看全部问答>

《Keil Software –Cx51 编译器用户手册 中文完整版》(403页)

《Keil Software –Cx51 编译器用户手册 中文完整版》(403页)…

查看全部问答>

恩智浦Cortex LPC1343开发板免费申请

整机为交流供电,数字电源和电子负载都有独立的液晶显示部分,显示各自的状态信息。     数字电源开机初始状态为0V,可在0-20V范围内以0.1V步进电压调整(同时具有0.01v的微调按纽)。带有输出电压,输出电流,输出功率显示。   & ...…

查看全部问答>

基于PDA和无线模块的SMS程序设计.pdf

基于PDA和无线模块的SMS程序设计.pdf…

查看全部问答>

帮朋友购买一个ST的RLINK烧录器,

请有货的朋友联系一下,给出报价和付款方式及保修期等.或者给推荐一下购买地点,现在深圳.Email ;   zhqlchy0904@sohu.com…

查看全部问答>

用8051能不能做到监视电机速度的?

用8051能不能做到监视电机速度的? 要用什么来显示电机的速度呢???我想在仿真软件里做出来的~谢谢你们了…

查看全部问答>

一个I/O口,控制2个LED

 开门见山,小弟疑问如下: 1.如何确定一款单片机I/O口,是否有3态,如何设置高阻态。 2.若没有3态,则如何设置在上点之后,初始状态为灭。 请教各位,如有解答,不胜感激…

查看全部问答>

多串口ARM

我考 8个串口 兄弟们听说过没有,这就是我最近在用的 cantus128 ARM,我现在想用它的网口转串口 在串口转网口,玩一下啊,反正串口多多吗,内部FIFO又大。哈哈哈…

查看全部问答>

为啥我发帖子,附件上传不上去呢?

附件也不是很大啊,为啥就传不上去啊???…

查看全部问答>

单片机开发是用C语言好还是汇编语言好?

随着计算机时代的不断创新,想必大家对C语言和汇编语言有了一定的了解呢,但是在单片机您觉得是用那种编程语言会比较好呢,下面由卓跃教育为您介绍。        汇编语言是一种用文字助记符来表示机器指令的符号语言,是最 ...…

查看全部问答>