NVIC的优先级问题

stm32F10xxx一共有43个通道提供给可置位中断源,可以通过AIRC寄存器分配优先级。


IRQChannelPreemptionPriority:抢占优先级

NVIC_IRQChannelSubPriority:响应优先级

优先程度:抢占式优先级>响应优先级>中断表中的排位顺序

注:高抢占式优先级的中断可以打断低抢占式优先级的中断。但抢占式优先级相同时,后来的中断只能在前一个中断处理完成后才被处理,不能打断。


//-------------------------------PreemptionPriority Group ------------------------------------------------

#define NVIC_PriorityGroup_0 ((u32)0x700) //0 bitsfor pre-emption priority 4 bits for subpriority

#define NVIC_PriorityGroup_1 ((u32)0x600) //1 bitsfor pre-emption priority 3 bits for subpriority

#define NVIC_PriorityGroup_2 ((u32)0x500) //2 bitsfor pre-emption priority 2 bits for subpriority

#define NVIC_PriorityGroup_3 ((u32)0x400) // 3bits for pre-emption priority 1 bits for subpriority

#define NVIC_PriorityGroup_4 ((u32)0x300) //4 bitsfor pre-emption priority 0 bits for subpriority

 

1)NVIC_PriorityGroup_0:代表 4BIT位都是响应优先级,共16个,无抢占优先级,所有中断不能被打断,同时来临时最高相应优先级先处理。

NVIC_IRQChannelPreemptionPriority:无效

NVIC_IRQChannelSubPriority:0~15

 

2)NVIC_PriorityGroup_1:代表有两位抢占优先级,8个响应优先级,抢占优先级能够打断响应优先级。

NVIC_IRQChannelPreemptionPriority:0或1

NVIC_IRQChannelSubPriority:0~7

 

3)NVIC_PriorityGroup_2:代表有4个抢占优先级,4个响应优先级。

NVIC_IRQChannelPreemptionPriority:0~3

NVIC_IRQChannelSubPriority:0~3

 

4)NVIC_PriorityGroup_3:代表有8个抢占优先级和2个响应优先级。

NVIC_IRQChannelPreemptionPriority:0~7

NVIC_IRQChannelSubPriority:0或1

 

5)NVIC_PriorityGroup_4:有16个抢占优先级,无响应优先级,高抢占优先级可以打断低抢占优先级。

NVIC_IRQChannelPreemptionPriority:0~15

NVIC_IRQChannelSubPriority:无效

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值