访问电脑版页面

导航:老古开发网手机版STM32单片机STM32单片机的中断系统

对STM32F107中断向量优先级的理解

导读:在网上看到了一个人对107中断向量优先级的理解,仔细读完觉得还可以,特分享,具体内容如下:形象化的理解是:你是上帝,造了43个人,这么多人要分社会阶级和社会阶层了;因为“阶级”的词性比较重;"阶层"比较中性,
关键字:
stm32f107,中断向量,优先级,

在网上看到了一个人对107中断向量优先级的理解,仔细读完觉得还可以,特分享,具体内容如下:

形象化的理解是:

你是上帝,
造了43个人,这么多人要分社会阶级和社会阶层了;
因为“阶级”的词性比较重;"阶层"比较中性,
所以preemption优先级->阶级;每个阶级内部,有一些阶层,sub优先级->阶层;

如果按照NVIC_PriorityGroup_4这么分,就分为了16个阶级(1个阶层就是1个preemption优先级),0个阶层;高阶级的人,可以打断低阶级的正在做事的人(嵌套),最多可以完成1个中断和15级嵌套。
每个阶级(每个preemption优先级),你来指定这43人中,谁进入该阶级;一个人叫EXTI0_IRQChannel,你指定他进入“阶级8”,则
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 8; // 指定抢占式优先级别1,可取0-15

另外,在同一阶级内部,一个人在做事的时候,另外一个人不能打断他;(preemption优先级别相同的中断源之间没有嵌套关系)
还有,如果他们两个同时想做事,因为没有阶层,那么就根据Vector table中的物理排序,让排名靠前的人去做;

又有1个人SPI1_IRQChannel,设定如下
NVIC_InitStructure.NVIC_IRQChannel = SPI1_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; // 指定抢占式优先级别1,可取0-15

SPI1_IRQChannel的阶级高,EXTI0_IRQChannel做事的时候可以打断(嵌套)。



如果按照NVIC_PriorityGroup_3这么分,就分为了8个阶级(1个阶级是1个preemption优先级),每个阶级内有2个阶层(sub优先级);高阶级的人,可以打断低阶级的正在做事的人(嵌套),最多可以完成1个中断和7级嵌套。

每个阶级(每个preemption优先级),你来指定这43人中,谁进入该阶级;一个人叫EXTI0_IRQChannel,你指定他进入“阶级3”,则:
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; // 指定抢占式优先级别1,可取0-7
还需要指定他的阶层:
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; // 指定响应优先级别0,可取0-1

另有1个人叫EXTI9_5_IRQChannel,他的阶级和阶层设定如下
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; // 指定抢占式优先级别0,可取0-7
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; // 指定响应优先级别1

那么这两个人是同一阶级的兄弟,一个人在做事的时候,另外一个人不能打断他;(preemption优先级别相同的中断源之间没有嵌套关系)
如果他们两个同时想做事,因为前者的阶层高,所以前者优先。

还有一个人叫USART1_IRQChannel,他的阶级和阶层设定如下
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; // 指定抢占式优先级别0,可取0-7
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; // 指定响应优先级别1

USART1_IRQChannel的优先级最高,当前面两个人做事的时候,他都可以打断(嵌套)。

以下的类推。


来源:互联网   作者:karen  2018/8/27 19:00:01
栏目: [ STM32单片机的中断系统]

相关阅读

关于STM32中断向量表的位置 、重定向问题

STM32F0(3)EXTI 外部中断配置

STM32单片机中抢占优先级和响应优先级的表达方式解析

STM32单片机外部中断的设置方法

STM32单片机是怎样执行中断函数中的应用的

STM32单片机的EXIT中断解析

如何配置stm32中断的优先级

STM32的基本概念及中断应用

STM32中断过程详解

如何采用STM32单片机中断向量控制器NVIC来分配优先级的数量

STM32的Cortex-M3中断异常处理

STM32单片机实现外部中断的步骤及方法

STM32单片机为什么要中断

STM32中断与嵌套NVIC快速入门

STM32 GPIO外部中断总结

关于STM32配置中断和GPIO针脚问题

基于STM32单片机秒中断源和闹钟中断源的解决方案

STM32学习笔记——外部中断的初步了解

STM32单片机优先级的定义

STM32单片机的外部中断和中断控制器的特点解析