stm32 优先级说明

抢占优先级和响应优先级,其实是一个中断所包含的两个优先级,其中前者是对抢占优先级的级别划分,后者是相同抢占优先级的优先级别的划分。

比如:

中断A抢占优先级比B高,那么A的中断可以在B里面触发,忽略响应优先级;

A和B抢占优先级相同,则A、B的响应优先级决定谁先响应;

总之 , 抢占优先级厉害

具体我们可以参考官方提供的table

00080 The table below gives the allowed values of the pre-emption priority and subpriority according

00081 to the Priority Grouping configuration performed by NVIC_PriorityGroupConfig function

00082 ============================================================================================================================

00083 NVIC_PriorityGroup | NVIC_IRQChannelPreemptionPriority | NVIC_IRQChannelSubPriority | Description

00084 ============================================================================================================================

00085 NVIC_PriorityGroup_0 | 0 | 0-15 | 0 bits for pre-emption priority

00086 | | | 4 bits for subpriority

00087 —————————————————————————————————————————-

00088 NVIC_PriorityGroup_1 | 0-1 | 0-7 | 1 bits for pre-emption priority

00089 | | | 3 bits for subpriority

00090 —————————————————————————————————————————-

00091 NVIC_PriorityGroup_2 | 0-3 | 0-3 | 2 bits for pre-emption priority

00092 | | | 2 bits for subpriority

00093 —————————————————————————————————————————-

00094 NVIC_PriorityGroup_3 | 0-7 | 0-1 | 3 bits for pre-emption priority

00095 | | | 1 bits for subpriority

00096 —————————————————————————————————————————-

00097 NVIC_PriorityGroup_4 | 0-15 | 0 | 4 bits for pre-emption priority

00098 | | | 0 bits for subpriority

00099 ============================================================================================================================

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-30 23:44:38

stm32 优先级说明的相关文章

STM32 之 NVIC(中断向量、优先级) 简述

一.背景 需要使用STM32的CAN进行通信,经过一系列配置后,已可正常收发,还剩下一个CAN通信的错误处理.可错 误中断使能寄存器已经配置使能了,出错后就是无法进入"CAN1_SCE_IRQHandler"中断.(让CAN通信出错的的 办法很简单,将"CAN_H"与"CAN_L"直接短接,然后让其发送数据,正常情况下,就会触发错误中断了,发送错 误寄存器会瞬间加至"128",如果继续发,每发一次,发送错误计数器会+8,直到2

STM32中的抢占优先级、响应优先级概念

STM32(Cortex-M3)中有两个优先级的概念--抢占式优先级和响应优先级,有人把响应优先级称作'亚优先级'或'副优先级',每个中断源都需要被指定这两种优先级. 具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套在低抢占式优先级的中断中. 当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理.如果这两个中断同时到达,则中

stm32中断 抢占优先级 和 响应优先级 有什么区别

与51不同,stm32的中断分类更灵活.51只是按先后顺序大小排列互相打断. stm32中多了响应优先级这一概念. stm32的中断分为 1.抢占(占先)优先级. 2.响应优先级. 1.抢占优先级.抢占优先级高的中断,可以打断抢占优先级低的中断. 2.响应优先级.抢占优先级相同的中断,响应优先级高的可以优先执行. 也许会有疑问:抢占优先级相同的中断,响应优先级高的不可以打断响应优先级低的中断.两个中断肯定是谁先来了就相应谁,两个中断不可能同时来.响应优先级又有何用呢. 其实,响应优先级主要给出了

STM32的优先级NVIC_PriorityGroupConfig

关于STM32的中断优先级 1.STM32中每一个中断都有一个专门的寄存器,(Interrupt Priority Register),来描述该中断的占先式优先级和副优先级,在这个寄存器中STM32使用4个二进制位描述优先级 2.占先式优先级和副优先级的分配 优先级组别 占先式优先级 副优先级 4 4位/16级 0位/1级 3 3位/8级 1位/2级 2 2位/4级 2位/4级 1 1位/2级 3位/8级 0 0位/1级 4位/16级 中断组别0-4,即表示了中断占先式优先级的位数,中断组别为n

STM32 抢占优先级和响应优先级

一.抢占优先级和响应优先级 STM32 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号 越小,表明它的优先级别越高. 抢占,是指打断其他中断的属性,即因为具有这个属性会出现嵌套中断(在执行中断 服务函数A 的过程中被中断B 打断,执行完中断服务函数B 再继续执行中断服务函数 A),抢占属性由NVIC_IRQChannelPreemptionPriority 的参数配置. 而响应属性则应用在抢占属性相同的情况下,当两个中断向量的抢占优先级相同时, 如果两个中断同时到达, 则先

STM32的优先级NVIC_PriorityGroupConfig的理解及其使用

我自己依据此图理解,应用思维导图画了一张方便理解:(如果看不清可通过ctrl+鼠标滑轮    放大看:) 前提条件1:组别优先顺序(第0组优先级最强,第4组优先级最弱):NVIC_PriorityGroup_0>NVIC_PriorityGroup_1>NVIC_PriorityGroup_2>NVIC_PriorityGroup_3>NVIC_PriorityGroup_4前提条件2:“组”优先级别>“抢”占优先级别>“副”优先级别前提条件3:同一组优先级别中,不同的

STM32学习及应用笔记二:一次运算符优先级造成的错误

本人在最近一个项目的开发中,出现一个应为疏忽运算符优先级造成的问题,检查了很久才发现问题,所以觉得运算符的优先级问题还是有必要再研究一下.具体的问题是这样的,我采集了传感器的原始数据,然后会对数据进行一些处理,在其中的一种条件下会对一个数进行左移几位并加上一个数.类似的操作在其他地方也有,但只在这个地方忘记了一个括号,所以得出了结果总是存在偏差,只好从头开始查找,花了不少时间才发现这出错误. 其实本人平时还是非常注意代码规范的,但也有一时疏忽的,确实运算符的优先级有时候让人迷惑.下面我们简单的总

stm32之中断响应优先级

1)中断响应分为:自然优先级.抢占优先级.响应优先级. 2)抢占优先级和响应优先级,其实是一个中断所包含的两个优先级,其中前者是抢占优先级之间的级别划分,后者是相同抢占优先级的优先级别的划分. 中断A抢占优先级比B高,那么A的中断可以在B里面触发,忽略响应优先级: A和B抢占优先级相同,则A.B的响应优先级决定谁先响应: A和B抢占优先级和响应优先级均一致,则谁先来就先处理谁,如果还是同时发生则由自然优先级决定.自然优先级在数据手册  NVIC向量表中可查询到. 如果有多个相同抢占优先级的中断来

STM32学习笔记(五)——通用定时器计数延时

STM32定时器概述 STM32F40x系列总共最多有14个定时器,定时器分为三类:基本定时器.通用定时器和高级定时器.它们的都是通过计数来达到定时的目的,和51的定时器差不多,基本原理都是一样的,就是功能多了一些,这些计数器都是自动重新装载初值的,使用起来非常方便,而且计数时钟频率可以通过分频系数来设置.本文章将介绍使用定时器中断来控制LED间隔1s闪烁. 计数的时钟来源主要有四个: 内部时钟CK_INT 外部时钟模式1:外部输入脚TIx 外部时钟模式2:外部触发输入ETR,仅适用于 TIM2