stm32f10x中断分组 问题
Posted 旭日初扬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32f10x中断分组 问题相关的知识,希望对你有一定的参考价值。
一、可设置的中断分组
// 中断分组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
#define NVIC_PriorityGroup_0 ((uint32_t)0x700) /*!< 0 bits for pre-emption priority
4 bits for subpriority */
#define NVIC_PriorityGroup_1 ((uint32_t)0x600) /*!< 1 bits for pre-emption priority
3 bits for subpriority */
#define NVIC_PriorityGroup_2 ((uint32_t)0x500) /*!< 2 bits for pre-emption priority
2 bits for subpriority */
#define NVIC_PriorityGroup_3 ((uint32_t)0x400) /*!< 3 bits for pre-emption priority
1 bits for subpriority */
#define NVIC_PriorityGroup_4 ((uint32_t)0x300) /*!< 4 bits for pre-emption priority
0 bits for subpriority */
#define IS_NVIC_PRIORITY_GROUP(GROUP) (((GROUP) == NVIC_PriorityGroup_0) || \\
((GROUP) == NVIC_PriorityGroup_1) || \\
((GROUP) == NVIC_PriorityGroup_2) || \\
((GROUP) == NVIC_PriorityGroup_3) || \\
((GROUP) == NVIC_PriorityGroup_4))
中断分组共有五级可选 0~4
中断分组0:主优先级(抢占式优先级为0) 响应式优先级:0~15 最高的优先级分组设置
个人理解:抢占式优先级分为1组(2^0),内含16(2^4)个响应式优先级
中断分组1:主优先级0~1(2^1) 抢占式优先级0~7(2^3)
抢占式优先级分为2组,每组含8个响应式优先级。
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 2^2 几次方窃以为几级分组
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;// 抢占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority =0; // 响应式优先级
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;// 抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority =1; // 响应式优先级
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;// 抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority =2; // 响应式优先级
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;// 抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority =3; // 响应式优先级
在抢占式优先级相同的情况下,高响应优先级的中断优先被响应。
抢占式优先级数值越小,优先级越高以上是关于stm32f10x中断分组 问题的主要内容,如果未能解决你的问题,请参考以下文章