stm32 NVIC中断优先级管理

STM32 的中断管理系统支持16级可编程优先级,分为组0~4进行管理。抢占优先级数值越低,优先级越高,能打断响应优先级较低的中断。响应优先级在抢占优先级相同的情况下决定执行顺序。通过NVIC_PriorityGroupConfig设置优先级分组,NVIC_Init函数初始化中断参数。中断管理涉及抢占和响应优先级设置、使能、失能、挂起和解挂等操作。
摘要由CSDN通过智能技术生成

对于中断这个概念,我喜欢用经常发生在CPU中的多线程抢占执行现象来类比,每个中断(或者说中断服务)就像是一个线程,它们根据事先定义好的运行规则运作着,所以这就引出了如何管理中断,我们应如何确定哪个中断先执行,哪个后执行。

1.NVIC中断优先级分

CM3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。

STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。
STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个)

中断管理方法:
首先,对STM32中断进行分组,可以定义为组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。

分组配置是在寄存器SCB->AIRCR中配置:
在这里插入图片描述
看到这肯定还是蒙圈的,下面先解释什么是抢占优先级,什么是响应优先级
在这里插入图片描述
总结来说就是:首先比较抢占优先级,值越低优先级越高,高抢占优先级可以打断低抢占优先级,只有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值