nicole.088的个人空间 https://bbs.21ic.com/?658245 [收藏] [复制] [RSS]

日志

中断优先级 STM32(Cortex-M3)

已有 347 次阅读2016-12-4 12:21 |个人分类:单片机|系统分类:单片机

1、中断优先级                                       
   STM32(Cortex-M3)有抢占优先级响应优先两个概念。
优先级中断嵌套的规则:高抢占式优先级的中断可以嵌套低抢占式优先级的中断(注意:是抢占式)。抢占优先级号码越小优先级越高。                                            
分以下几种情况:                                                                               
1)当两个中断源的抢占式优先级相同 ---- 没有嵌套关系                                                
2)当一个中断到来后,如果正在处理另一个中断,这个后来的中断要等待前一个中断处理完之后才能被处理。如果两个中断同时到达,则根据它们的抢占优先级处理。如果抢占式优先级相同很据它们的响应优先级处理。如果抢占式优先级和响应优先级都相同,则根据它们在中断表中的排位顺序决定。
     优先级分组:   

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_x)决定优先级分组                                                                                           
eg: (摘自网络)                                               
 
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);//配置为0组。NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel; 
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; // 指定抢占式优先级别0,可取0-1 
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能中断 
NVIC_Init(&NVIC_InitStructure);  
NVIC_InitStructure.NVIC_IRQChannel = SPI1_IRQChannel
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; // 指定抢占式优先级别1,可取0-1 
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; // 指定从优先级别0,可取0-7 
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); 

NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel;  
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;  
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; // 指定从优先级别1,
可取0-7 
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;   NVIC_Init(&NVIC_InitStructure);
 
EXTI0_IRQChannel 抢占优先级 > SPI1_IRQChannel、USART1_IRQChannel,所以EXTI0_IRQChannel中断可以打断正在执行的SPI1_IRQChannel/USART1_IRQChannel中断,实现中断嵌套。
SPI1_IRQChannel、USART1_IRQChannel先占优先级相等,不能相互打断,即在执行SPI1_IRQChannel/ USART1_IRQChannel中断时USART1_IRQChannel/SPI1_IRQChannel中断无法打断。  
同时产生SPI1_IRQChannel、USART1_IRQChannel中断时,要根据从优先级进行排队,SPI1_IRQChannel从优先级比较高,所以先执行SPI1_IRQChannel中断。

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)