[求助] STM中断求助

奥宾   2011-10-19 20:03 楼主

STM的优先级分组是根据什么来分的,如何确定是分第几组,例如

第0组:所有4位用于指定响应优先级
第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级
第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级
第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级
第4组:所有4位用于指定抢占式优先级

分组又是如何影响中断抢占以及嵌套中断~~~

本人按照以下程序设置,但并没有发生嵌套中断,反而中断服务函数结束之后,函数退不回主函数(主函数为死循环,以LED显示作实验)

// 选择使用优先级分组第1组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
// 使能EXTI0中断
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; // 指定抢占式优先级别1
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_IRQChannelPreemptionPriority = 0; // 指定抢占式优先级别0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; // 指定响应优先级别1
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure); 


 

中断组设置为0,函数可以退回主函数但不可以嵌套中断,但设置1—4,可以嵌套中断,

但不可以回去主函数,

 

即中断函数执行完后,便卡在那个执行完的状态

 

各位高手,请帮帮忙哦~~~

回复评论 (1)

帮你顶
点赞  2011-11-6 22:42
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复