当前位置: 首页 > news >正文

MCU_STM32F4XX 的中断优先级(和STM32F1XX相同)

在单片机中,STM32系列对中断优先级的管理算是相对比较容易的,优先级的数量也相对较少。

STM32F40X的中断优先级和STM32F10X的设置是完全一样的,具体情况STM32F10X可参考ST官网的编程手册PM0056, STM32F40X可参考PM0214,其中SCB->AIRCR的PRIGROUP配置表是这样的,

 

这里的Group priority就是我们通常说的抢占优先级(preemption priority),参与嵌套的必须是抢占优先级。如果某个中断A正在进行中,同个Group的是无法抢占的,只有更高(数字更小)的优先级比如B才能打断这个A中断完成抢占,B干完后,再把资源还给A中断。

组内的子优先级,通常也称响应优先级,则是根据序号排队,谁小谁先进中断;但不许抢,已经进去的哪怕是低优先级,也得让人把活干完让出资源后才能轮到下一个高优先级中断。

上面这个表的理解也比较简单,我们发现0,1,2,3这低4位是没有用到的,所以读写都会被忽略,不用管。用到的只有第4,5,6,7高4位,取决于SCB->AIRCR[2:0]的配置,而且不管怎么配置,都只有16个优先级(Group*Sub)。

SCB->AIRCR[2:0] =

(1) 0b111 就是4位都用来设置成响应优先级,2^4=16位都是响应优先级

(2) 0b110 分为2 两个抢占优先级,在这两个抢占优先级里面,每个有8个子响应优先级

(3)0b101 分为4个抢占优先级,在这四个抢占优先级里面每个有4 四个响应优先级

(4)0b100分为8个抢占优先级,在这八个抢占优先级里面每个有2 两个响应优先级

(5)0b0xx分为16个抢占优先级

相关文章:

  • MCU_STM32的位带操作 -- bit banding
  • C++的问题:变量“xxx”不是类型名
  • UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64, FLOAT, DOUBLE
  • c++ 如何给数组批量赋值--利用结构定义数组以提高程序的可读性
  • c++ windows 之下 CreateThread vs CreateProcess
  • libusb源码学习:list_entry
  • libusb源码学习:几个函数加载的宏(windows)
  • MCU_如何通过硬件VID 查找生产厂家
  • MCU_WireShark USB抓包内容解析
  • MCU_Wireshark USB 抓包过滤(抓特定端口地址)
  • STM32F4xx usb库源码详解 custom HID
  • STM32F4xx usb库源码详解:HAL_PCDEx_SetRxFiFo 和 HAL_PCDEx_SetTxFiFo
  • Libuv 1.34.2 源码详解 ---- 以uvCat为例讲解
  • 步进电机的细分驱动中1-2相, W1-2相, 2W1-2相, 4W1-2相 表示什么意思?
  • MCU_关于STM32Fxxx中断EXTI产生时多次(两次)进入中断的原因
  • angular2开源库收集
  • centos安装java运行环境jdk+tomcat
  • Java 最常见的 200+ 面试题:面试必备
  • learning koa2.x
  • Netty源码解析1-Buffer
  • php的插入排序,通过双层for循环
  • react-native 安卓真机环境搭建
  • WinRAR存在严重的安全漏洞影响5亿用户
  • Xmanager 远程桌面 CentOS 7
  • 阿里云Kubernetes容器服务上体验Knative
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 记一次用 NodeJs 实现模拟登录的思路
  • 今年的LC3大会没了?
  • 聊聊redis的数据结构的应用
  • 入门级的git使用指北
  • 少走弯路,给Java 1~5 年程序员的建议
  • 为视图添加丝滑的水波纹
  • 移动端唤起键盘时取消position:fixed定位
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #define,static,const,三种常量的区别
  • #include
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)计算机毕业设计大学生兼职系统
  • (力扣)循环队列的实现与详解(C语言)
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (四)JPA - JQPL 实现增删改查
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)ORM
  • (转)winform之ListView
  • (转)项目管理杂谈-我所期望的新人
  • (转载)Linux网络编程入门
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • . NET自动找可写目录
  • .apk文件,IIS不支持下载解决
  • .dwp和.webpart的区别
  • .NET 2.0中新增的一些TryGet,TryParse等方法