OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7856|回复: 11

中断分组NVIC_PriorityGroupConfig

[复制链接]

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2015-9-8
在线时间
4 小时
发表于 2015-9-17 13:58:40 | 显示全部楼层 |阅读模式
5金钱
有一点不理解,这个函数是对所有的中断进行统一的分组吗?
比如F103有60个可屏蔽中断,
[mw_shl_code=c,true]NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); [/mw_shl_code]
这60个可屏蔽中断都是2个抢占位,2个响应位。

最佳答案

查看完整内容[请看2#楼]

STM32对每个中断,都可以设置抢占优先级和响应优先级。 这两个优先级,对每个中断是通过一个寄存器的四个位来设置。 Cortex-M内核为了灵活,就通过设置分组,来分配这四个位,到底是几个位是响应,几个位是抢占。 比如常用的,分组2,就是响应占2个位(值为0-3),抢占占2个位(0-3),,,, 我们手册里面讲解中断优先级分组,讲解应该是非常详细的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2015-9-17 13:58:41 | 显示全部楼层
STM32对每个中断,都可以设置抢占优先级和响应优先级。
这两个优先级,对每个中断是通过一个寄存器的四个位来设置。
Cortex-M内核为了灵活,就通过设置分组,来分配这四个位,到底是几个位是响应,几个位是抢占。
比如常用的,分组2,就是响应占2个位(值为0-3),抢占占2个位(0-3),,,,

我们手册里面讲解中断优先级分组,讲解应该是非常详细的
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2015-9-17 13:58:41 | 显示全部楼层
NVIC_PriorityGroupConfig(); 这是设置分组啊

没有对具体的中断设置优先级。。。

具体中断怎么设置优先级?函数为NVIC_Init(),
我们教程真的很详细了。。。个人认为
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2015-9-8
在线时间
4 小时
 楼主| 发表于 2015-9-17 14:41:10 | 显示全部楼层
回复【2楼】Admin:
---------------------------------
你好,分组的概念我明白,不明白的是如何通过
NVIC_PriorityGroupConfig();
对每一个中断进行分组。
比如说我在main函数中要设置中断EXTI0、和ADC1_2,怎么使用这个函数呢?
回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2015-9-8
在线时间
4 小时
 楼主| 发表于 2015-9-17 14:46:58 | 显示全部楼层
回复【2楼】Admin:
---------------------------------
NVIC_PriorityGroupConfig();
只说明了分到0~4中的某一组,但没有说明是对那个中断进行分组。
回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2015-9-8
在线时间
4 小时
 楼主| 发表于 2015-9-17 14:59:37 | 显示全部楼层
回复【5楼】Admin:
---------------------------------
大神,我想知道如何对具体的某一个中断进行分组,
比如中断EXTI0
和ADC1_2
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2015-9-8
在线时间
4 小时
 楼主| 发表于 2015-9-17 15:02:06 | 显示全部楼层
回复【5楼】Admin:
---------------------------------
大神,我想知道如何对具体的某一个中断进行分组,
比如中断EXTI0      分组为2
           ADC1_2   分组为3
该怎么使用NVIC_PriorityGroupConfig。

谢谢了!!!
回复

使用道具 举报

2

主题

14

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2015-7-30
在线时间
0 小时
发表于 2015-9-18 21:04:09 | 显示全部楼层
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);这就是直接分到了第二组4*4,具体哪个中断的主次优先级配置可以在NVIC_Init()具体写,根据组二的规则写
回复

使用道具 举报

18

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2015-4-19
在线时间
2 小时
发表于 2015-12-10 09:43:13 | 显示全部楼层
回复【3楼】鱼龙潜跃:
---------------------------------
请教:STM32f0 库函数 为啥找不到NVIC_PriorityGroupConfig
回复

使用道具 举报

5

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2017-7-22
在线时间
10 小时
发表于 2017-7-23 11:00:39 | 显示全部楼层
priority.jpg
这些中断分组的宏定义的值是怎么确定的?
回复

使用道具 举报

5

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
193
金钱
193
注册时间
2019-7-23
在线时间
22 小时
发表于 2020-1-7 14:16:21 | 显示全部楼层
鱼龙潜跃 发表于 2015-9-17 15:02
回复【5楼】Admin:
---------------------------------
大神,我想知道如何对具体的某一个中断进行分组,
...

哪会有这样的分组。。。同一个程序下来只能进行一次分组就是只能NVIC_PriorityGroupConfig用一次。。。其他的再在你要用的那个中断的初始化里面设置中断更新和中断标志位就可以编写中断服务函数了
回复

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2020-3-9
在线时间
26 小时
发表于 2020-4-4 22:42:33 | 显示全部楼层
AidenFlyenlives 发表于 2020-1-7 14:16
哪会有这样的分组。。。同一个程序下来只能进行一次分组就是只能NVIC_PriorityGroupConfig用一次。。。其 ...

那我同时有用到定时器中断和外部中断呢?应该是可以进行多次分组的吧,我看例程里面就有多次分组的,但是同时用到定时器中断和外部中断,应该怎么设置我还没弄懂,请教
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-24 16:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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