刚开始学习STM32单片机时,对中断优先级的规则不是很明白,通过今天的学习,对这方面的内容有了新的了解,记录下来以便日后查看。
首先说一下STM32的中断:
STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。
STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个)
中断的管理方法:
1.首先,对STM32中断进行分组,组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。
分组配置是在寄存器SCB->AIRCR中配置:
即设置优先级分组:void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
2.然后对单个的中断进行抢占优先级和响应优先级设置:
typedef struct
{
uint8_t NVIC_IRQChannel; //设置中断通道
uint8_t NVIC_IRQChannelPreemptionPriority;//设置响应优先级
uint8_t NVIC_IRQChannelSubPriority; //设置抢占优先级
FunctionalState NVIC_IRQChannelCmd; //使能/使能
} NVIC_InitTypeDef;
NVIC_

本文记录了学习STM32中断优先级的心得。STM32拥有84个中断,分为16级可编程优先级,通过中断分组设置抢占和响应优先级。中断管理涉及NVIC_PriorityGroupConfig和NVIC_InitTypeDef结构体,用于配置中断通道、抢占和响应优先级。分组策略确保了中断优先级的配置,但更改分组需谨慎,以免影响已设定的中断优先级。
最低0.47元/天 解锁文章
4138

被折叠的 条评论
为什么被折叠?



