STM32设置中断优先级问题理解的对不对

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);这个函数说最高1位用于指定抢占式优先级,最低3位用于指定响应优先级,有点不明白,是不是说8个中断源用于抢占优先级,7个用于响应优先级?还有NVIC_IRQChannelPreemptionPriority和NVIC_IRQChannelSubPriority这两个参数和NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1)这个函数有什关系,有点不太明白!
手册上说同一类的中断不能嵌套,那么EXTI0和EXTI1是不是可以嵌套呢?

第1个回答  2013-02-04
STM32通过4个BIT来对中断进行分组,比如你说的Group_1,就是用最高1位用于指定抢占式优先级,最低3位用于指定响应优先级。Group_2,就是用最高2位用于指定抢占式优先级,最低2位用于指定响应优先级。
当中断发生时MCU将先比较抢占式优先级,谁大谁先执行,如果一样着比较响应优先级。就这样来分辨中断优先级
-----------
NVIC_IRQChannelPreemptionPriority和NVIC_IRQChannelSubPriority这两个参数和NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1)这个函数有什关系,有点不太明白!
这些函数手册上有说明,一般这样的库函数你照搬就OK了,要看透还真不容易本回答被提问者采纳
第2个回答  2013-02-15
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
---这个函数来指定系统中断分组。现在是GROUP1,只有1位表明抢占优先级,另外3位表明响应优先级。换言之,这里抢占优先级只有2级,响应优先级只有8级。跟中断源多少无对应关系。
NVIC_IRQChannelPreemptionPriority和NVIC_IRQChannelSubPriority 分别指定某中断源的强占优先级和响应优先级。
不能嵌套的前提是中断的抢先优先级一样。

STM32中断中设置的先占式优先级与从优先级如何理解??
STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称作'亚优先级'或'副优先级',每个中断源都需要被指定这两种优先级。具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级...

对STM32中断的理解
  第一:STM32的中断类型分为两种:抢占优先级和响应优先级。抢占优先级决定了抢占行为,即当系统正在响应某中断L的时候,如果来了抢占优先级更高的异常H时,则H可以抢占L。而当抢占优先级相同的异常不止一个触发时,则最先响应响应优先级高的异常。如果抢占优先级和响应优先级都是相同...

stm32中断优先级设置是怎么回事?怎样设置两个优先级?
NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQChannel; \/\/通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;\/\/优先级设置0 或者1 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; \/\/优先级设置 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); 、、、 NVIC_Pr...

关于STM32的串口中断
就是要保证在中断里一定先读SR再读DR这样的一个完整序列,才能清除串口的各种出错状态,这是STM32清串口状态特有的,编写STM32串口程序应该特别注意的。

STM32中子优先级和相应优先级是一个概念吗?
STM32的中断是分组的,抢占优先级是主要优先级,你可以把相同抢占优先级的中断想做一个小团体,他们一起去排队;而这个子优先级就是他们在这个小团体里的位置。你可以看看STM32中断原理。http:\/\/wenku.baidu.com\/link?url=Weksktrj6_TaTwJ_N1zDPwclHcNNBNJZT4ArH6BfVpJSnf9Nqh9PLDmeR3htnkKc5g...

stm32为什么按键配置优先级无先后
stm32按键配置优先级无先后的原因如下:1、中断优先级设置:在STM32的中断控制器中,可以通过设置中断优先级来确定不同中断的触发顺序。按键的中断优先级相同,那么触发中断的先后顺序是无法确定的。2、按键触发方式:按键是通过GPIO输入引脚实现的。在按下按键时,相应的GPIO引脚会触发中断。多个按键同时按...

stm32中断编程要求:2个中断,2个优先级,2个初始化函数
(4)NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x01;\/\/设置响应优先级。(5)NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;\/\/设置开启中断。可以理解为开启总中断。(6)NVIC_Init(&NVIC_InitStructure);\/\/调用出事换函数,初始化这个中断。6、最都不要忘记在stm32f10x_it.c中编写中断服务程序。

stm32 如何实现中断嵌套
中断嵌套的实现肯定和中断优先级有关。若设置STM32的中断嵌套需要先使用NVIC_PriorityGroupConfig()这个函数选择优先级分组,然后通过NVIC_InitStructure来配置一个中断的通道(个人认为称作这个中断优先级的名字更好)、抢占式优先级和响应优先级及其使能。给不同的中断指定不同的抢占优先级即可实现32的中断嵌套...

STM32 最多能有几个中断嵌套?我看有人说32,有人说64,我觉得分成组四,4...
16层中断嵌套,注意是层,如果来了17个不同的中断,必然有两个中断的优先级是相同的。你的理解是对的,4位只能配置16层。但要注意的是,Cortex-m3的内核提供的中断优先级分组为8组,即最大支持128层嵌套,只是每个厂商生产芯片时没利用那么多罢了。STM32就只用了5组即16层。

stm32 在执行while期间,能否进入中断。
可以的,主程序一般都是要带while循环的。不然主程序走完了就进不了中断了!

相似回答