野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13454|回复: 5

请教一下NVIC分组的问题, 非常感谢!

[复制链接]
发表于 2021-9-1 16:01:05 | 显示全部楼层 |阅读模式
新入坑STM32, 遇到个问题, 一个工程里是不是只能有一个NVIC分组, 如果设置了多个, 寄存器内写入的是最后一次配置结果.
比如:
A和B, 两个中断
A中断: 组1, 抢占1, 子1;
B中断: 组2, 抢占1, 子1.

A初始化;
B初始化;

B中断初始化后, A中断的分组就改成了组1了?

那只有一个分组的情况下, 一个工程有16个中断级别可用. 我知道16个级别可用, 只是想学习基础知识.

最后, 再次感谢
回复

使用道具 举报

发表于 2021-9-1 17:34:42 | 显示全部楼层
NVIC中断分组设置好了之后就固定了,重复设置只会代替掉原先的设置

设置好中断分组之后,就是设置某个中断的级别了...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-3 14:33:56 | 显示全部楼层
ID-fHtdZc 发表于 2021-9-1 17:34
NVIC中断分组设置好了之后就固定了,重复设置只会代替掉原先的设置

设置好中断分组之后,就是设置某个中断 ...

明白了, 一个工程只能设置一个NVIC分组, 非常感谢!!!!
回复 支持 反对

使用道具 举报

发表于 2023-12-17 10:48:50 | 显示全部楼层
ID-fHtdZc 发表于 2021-9-1 17:34
NVIC中断分组设置好了之后就固定了,重复设置只会代替掉原先的设置

设置好中断分组之后,就是设置某个中断 ...

请问如果我有2个中断源,例如PA0和PC13(两个按键),然后在设置PA0的中断分组和优先级之后,PC13的优先级为什么不用设置?那么这两个中断的优先级是如何区分的?代码是火哥第18章的外部中断实验中的,如下所示:
//NVIC配置函数
static void NVIC_Config(void) //static关键字表示该函数只能被当前文件中的函数调用
{
    NVIC_InitTypeDef NVIC_InitStruct; //创建NVIC结构体变量
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //配置中断优先级分组(整个程序只需要配置1次)

    //配置中断源1:KEY1
    NVIC_InitStruct.NVIC_IRQChannel = KEY1_INT_EXTI_IRQ; //选择要启用的IRQ通道
    NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1; //设置抢占优先级(主优先级)
    NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1; //设置子优先级
    NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; //使能中断通道
    NVIC_Init(&NVIC_InitStruct); //调用NVIC初始化库函数

    //配置中断源2:KEY2
    NVIC_InitStruct.NVIC_IRQChannel = KEY2_INT_EXTI_IRQ; //选择要启用的IRQ通道
                NVIC_Init(&NVIC_InitStruct);
}
回复 支持 反对

使用道具 举报

发表于 2023-12-20 16:40:56 | 显示全部楼层
玲玲栖 发表于 2023-12-17 10:48
请问如果我有2个中断源,例如PA0和PC13(两个按键),然后在设置PA0的中断分组和优先级之后,PC13的优先 ...

他这里是配置成一样的优先级,那他这里就看本身硬件上的优先级来了,其实不是同时按下而你又要定死哪个按键的优先级必须比另一个大,那这里就可以配置成一样的
回复 支持 反对

使用道具 举报

发表于 2023-12-24 15:38:48 | 显示全部楼层
菠萝片 发表于 2023-12-20 16:40
他这里是配置成一样的优先级,那他这里就看本身硬件上的优先级来了,其实不是同时按下而你又要定死哪个按 ...

感谢回复!
我所查阅到的资料是“如果不主动为中断源配置优先级,那么会被默认配置为(0,0),当存在多个默认优先级的中断源时,他们的优先级由硬件终端编号(中断向量表中的顺序)决定。” 也就是本例中PC13的优先级是默认的(0,0)。
如有不同见解,欢迎指教!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-2 02:16 , Processed in 0.057237 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表