理解STM32的中断优先级

STM32提供68个中断通道,每个中断源对应不同的外设,如I2C、UART等。中断优先级由抢占式和非抢占式两部分构成,其中4位优先级寄存器用于控制。NVIC_PriorityGroupConfig设置优先级段分配,NVIC_Init配置具体中断源的优先级。抢占式优先级高的中断可以嵌套中断低优先级任务,相同抢占式优先级时,非抢占式优先级高或中断序号低的中断先响应。
摘要由CSDN通过智能技术生成

STM32提供68个中断通道,每一个中断通道对应一个中断源,这里的中断源是指引发中断的外设(例如,I2C,UART,EXTI等等)。每一个中断源又可以包括多种中断发生情况,例如UART发送数据完毕,接收到数据等情况均可能引起UART中断源向STM32内核提出中断处理请求。

STM32的中断优先级可以分为抢占式优先级和非抢占式优先级控制两部分。

为了符合COTEX-M3标准,STM32的中断源优先级寄存器采用8位的方式存储,但是只是用了高4位,低4位保留未用。高4位又被分为了两段:抢占式优先级控制段和非抢占式优先级控制段。STM32提供了一个函数

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_x);

用于将这4位进行控制段分配划分,如下表,函数参数就是表的编号列。


对于一个特定的系统,只能在系统启动初调用该函数一次,指定优先级段分配方式。之后其他中断源配置均使用函数

NVIC_Init(&NVIC_InitStructure);--------------------------------------------优先级分组

进行中断源进行具体的优先级配置。涉及到的配置参数如下:

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;-----抢占式优

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值