STM32中断相关知识总结

本文详细介绍了STM32的中断系统,包括中断的概念、可屏蔽中断与不可屏蔽中断的区分、内核中断和外部中断、中断优先级及其分组、抢占优先级和响应优先级的区别。此外,还讲解了中断向量表、中断设置的相关寄存器以及如何通过NVIC进行中断配置。最后,阐述了STM32中断的控制流程和中断行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32中断相关知识总结

一:中断是什么?

中断是指处理器运行过程中,出现某些意外情况,CPU能自动停止正在运行的程序并转入处理新情况的程序(中断服务函数),处理完毕后又返回原被暂停的程序继续运行。
CM3和CM7 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256级的可编程中断设置。但 STM32 并没有使用 CM3或CM7 内核的全部东西,而是只用了它的一部分。STM32F1系列有 84 个中断,包括 16 个内核中断和 68 个可屏蔽中断,STM32F767xx总共有118个中断,包括10个内核中断和108个可屏蔽中断,他们都具有16级可编程的中断优先级。我们经常使用的一般是它们的可屏蔽中断。

二:什么是可屏蔽中断和不可屏蔽中断?
1:可由程序控制其屏蔽的中断称为可屏蔽中断。
2:不能由程序控制其屏蔽,处理机一定要立即处理的中断称为非屏蔽中断或不可屏蔽中断。
不可屏蔽中断主要用于断电、电源故障等必须立即处理的情况

三:内核中断和外部中断
STM32的内核中断
在这里插入图片描述
STM32的外部中断
在这里插入图片描述

四:什么是中断优先级
在实际系统中,常常遇到多个中断源同时请求中断的情况,这时CPU必须确定首先为哪一个中断源服务,以及服务的次序。解决的方法是中断优先排队,即根据中断源请求的轻重缓急,排好中断处理的优先次序即优先级( Priority ),又称优先权,先响应优先级最高的中断请求。另外,当CPU正在处理某一中断时,要能响应另一个优先级更高的中断请求,而屏蔽掉同级或较低级的中断请求,形成中断嵌套。优先级的数值越小,则优先级越高。CM3 支持中断嵌套,使得高优先级异常会抢占(preempt)低优先级异常。
CM3 支持 3 个固定的高优先级和多达 256 级的可编程优先级,为了使抢占机能变得更可控,CM3 还把 256 级优先级按位分成高低两段,分别是抢占优先级和亚优先级,使得其最多支持 128级抢占,因为至少有一个位代表亚优先级。但是,绝大多数 CM3 芯片都会精简设计,以致实际上支持的优先级数会更少,如 8 级,16 级,32 级等。它们在设计时会裁掉表达优先级的几个低端有效位,以达到减少优先级数的目的。
在这里插入图片描述
NVIC 中有一个寄存器是“应用程序中断及复位控制寄存器”(ARICR),它里面有一个位段名为“优先级组”。该位段的值对每一个优先级可配置的异常都有影响——把其优先级分为个位段:MSB 所在的位段(左边的)对应抢占优先级,而 LSB 所在的位段(右边的)对应亚优先级,如表 7-4 所示
在这里插入图片描述
实际在使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值