(三)分组及详细内容
第0组:所有4位用于指定响应优先级 (有16个抢占式优先级,16响应优先级)
第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级 (有2个抢占式优先级,8响应优先级)
第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级 (有4个抢占式优先级,4响应优先级)
第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级 (有8个抢占式优先级,2响应优先级)
第4组:所有4位用于指定抢占式优先级
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //选组
N VIC_InitStructure.NVIC_IRQChannelPreemptionPrio
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; // 指定响应优先级别1
(四) 例子
// 选择使用优先级分组第1组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
// 使能EXTI0中断
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPrio
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; // 指定响应优先级别0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
// 使能EXTI9_5中断
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPrio
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; // 指定响应优先级别1
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);