首页 热点专区 义务教育 高等教育 出国留学 考研考公

stm32 nvic优先级用4位是在哪个地方说明

发布网友

我来回答

2个回答

热心网友

这里我也查了好多资料,关于STM32 中 NVIC优先级使用4位大部分人都是口口相传的,没有具体说明,然后我查了一些英文原版资料,其中终于发现了关于这个"4位优先级"的描述:

<STM32 Programming manual> P.125 

4.7.3 Interrupt priority registers (NVIC_IPRx)

原文:

The IPR0-IPR16 registers provide a 4-bit priority field for each interrupt. 
These registers are byte-accessible. Each register holds four priority fields,
that map to four elements in the CMSIS interrupt priority array IP[0] to IP[67],
as shown in Figure 19.

即:

NVIC_IPR寄存器(中断优先级寄存器)对于每个(外部)中断规定4位优先级字段.
这些寄存器可以按字节访问.每个寄存器具有4个优先级字段,对应映射到四个CMSIS
(Cortex微处理器软件接口标准)中断优先级数组IP[0]到IP[67]中的元素中.

此外,还在表42中对寄存器有具体说明,如图所示:

原创回答,望采纳,转载请标明作者:

Dennis Chen , Email : chenzhe@briup.com

热心网友

STM32通过4个BIT来对中断进行分组,比如你说的Group_1,就是用最高1位用于指定抢占式优先级,最低3位用于指定响应优先级。Group_2,就是用最高2位用于指定抢占式优先级,最低2位用于指定响应优先级。
当中断发生时MCU将先比较抢占式优先级,谁大谁先执行,如果一样着比较响应优先级。就这样来分辨中断优先级
-----------
NVIC_IRQChannelPreemptionPriority和NVIC_IRQChannelSubPriority这两个参数和NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1)这个函数有什关系,有点不太明白!
这些函数手册上有说明,一般这样的库函数你照搬就OK了,要看透还真不容易

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com