之前学习嵌入式的时候不太明白中断优先级分组与抢占优先级和响应优先级的关系,比如分组为2,抢占优先级也为2,响应优先级也为2,就是不明白他们之间有什么关系,谁决定谁,总共有多少个数值可供选择。

趁着现在开始学习标准库和HAL库把这之间的关系理清楚。在我们的程序中使用中可能存在多个中断,当多个中断来临的时候需要有先后顺序来响应中断;这时就需要NVIC(嵌套向量中断控制器)来控制中断响应设定优先级了,我们常常需要用到和设置的就是抢占优先级和响应优先级了。

抢占优先级可以理解为多个中断共存的时候抢占优先级高的中断可以打断正在运行的中断抢先运行,决定一个中断是否先运行首先看的是抢占优先级,抢占优先级高则先运行该中断,当抢占优先级一样的时候才会看响应优先级,此时响应优先级高的中断先运行,(数字越小则优先级越高)

三者之间的关系:

STM32中有5中分组方式:

#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

这里的NVIC分组是指把多少位分给抢占优先级,多少位分给响应优先级,总共有4个位由于分组

第0组:4位都用于响应优先级

第1组:1位用于抢占优先级(2种),3位用于响应优先级(8种)

第2组:2位用于抢占优先级(4种),2位用于响应优先级(4种)

。。。。。。

第4组:4位用于抢占优先级

中断优先级分组与抢占优先级和响应优先级的关系相关推荐

  1. 【STM32】NVIC 中断优先级管理,抢占优先级,响应优先级,中断寄存器

    文章目录 抢占优先级和响应优先级 抢占 响应 NVIC 的优先级组 中断寄存器 ISER[8] ICER[8] ISPR[8] ICPR[8] IABR[8] IP[240] 中断优先级设置步骤总结 ...

  2. STM32的中断优先级说明(抢占式与响应式优先级)

    注:查看寄存器请看<ARM Cortex-M4权威指南>,由于本人采用库开发,所以就不深究寄存器了.总结资料来源于原子的<STM32F4库开发指南>,总结于此,方便查找. ST ...

  3. 【转】STM32中的抢占优先级、响应优先级概念

    STM32(Cortex-M3)中有两个优先级的概念--抢占式优先级和响应优先级,有人把响应优先级称作'亚优先级'或'副优先级',每个中断源都需要被指定这两种优先级. 具有高抢占式优先级的中断可以在具 ...

  4. STM32中断分配——抢占优先级与响应优先级

    <原创声明:本文属博主原创,禁止一切形式的转载.抄袭> 在用单片机做数据采集或者控制的时候,有时候需要一个工程开好几个中断,去同时控制舵机.电机.串口数据收发等等,这时候就需要对这若干个中 ...

  5. stm32的抢占优先级和响应优先级(也叫子优先级)

    一.抢占优先级和响应优先级 STM32 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号越小,表明它的优先级别越高. 抢占,是指打断其他中断的属性,即因为具有这个属性会出现嵌套中断 ...

  6. STM32的抢占优先级和响应优先级

    转自野火<零死角玩转STM32> 一.抢占优先级和响应优先级 STM32 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号 越小,表明它的优先级别越高.     抢占, ...

  7. STM32 EXTI外部中断及NVIC的抢占优先级和响应优先级解释

    1.中断类型 从之前的串口实验可以看出,STM32总共分为内部中断和外部中断,内部和外部的配置差别不是很大,外部中断只是多了一步,需要通过 GPIO_EXTILineConfig(uint8_t GP ...

  8. stm32中断优先级分组

    STM32中断优先级和开关总中断一,中断优先级:STM32(Cortex-M3)中的优先级概念 STM32(Cortex-M3)中有两个优先级的概念--抢占式优先级和响应优先级,有人把响应优先级称作' ...

  9. STM32F4设置NVIC中断优先级分组

    中断管理方法:  首先,对STM32中断进行分组,组0~4.同时,对每个中断设置一个抢占优先级和一个响应优先级值.  分组配置是在寄存器SCB->AIRCR中配置:  高优先级的抢占优先级是可以 ...

最新文章

  1. Python中“is”和“==”的区别
  2. WebService就是这么简单
  3. 华为FusionSphere概述——计算资源、存储资源、网络资源的虚拟化,同时对这些虚拟资源进行集中调度和管理...
  4. vscode设置默认新建html,VScode修改默认生成的HTML模板的方法
  5. 13、HTML <meta>标签
  6. ios_随手篇3_关于宏的使用
  7. webshell下执行CMD的小技巧
  8. php android 复制粘贴板,Android_Android剪贴板用法详解,本文实例详述了Android剪贴板的 - phpStudy...
  9. PHP的错误处理机制
  10. 1439: 2.4.5 Fractions to Decimals 分数化小数
  11. 怎样让一个心浮气躁的孩子静下心学习?
  12. python删除文件命令_python 删除文件夹
  13. 转:Python 主进程被杀死时,如何保证子进程同时退出而不变为孤儿进程
  14. C#调用C++的DLL搜集整理的所有数据类型转换方式
  15. B站又出事了,遭几大平台联合谴责
  16. 如何网页截长图?网页截图其实很简单
  17. 应用树莓派GPIO完成智能红绿灯系统
  18. 半监督学习matlab,基于自适应图的半监督学习方法与流程
  19. 基础的JavaScript编码规范
  20. Unity3D Shader基础教程

热门文章

  1. 算法笔记——常见DP问题汇总
  2. 将 EGL 代码与 DXGI 和 Direct3D 进行比较
  3. 前后端传输加密代码-java
  4. 允许网页打开android应用程序,通过浏览器直接打开Android应用程序
  5. Android ImageView 图片拉伸,填满控件
  6. The Phantom of the Opera 歌剧魅影
  7. 服务器被一堆系统登录_饥荒联机云服务器开档
  8. MySQL数据同步到ES集群(MySQL数据库与ElasticSearch全文检索的同步)
  9. Gson JsonParser
  10. 汉诺塔问题以及青蛙跳台阶问题(附C语言代码)