OpenEdv-开源电子网

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

中断优先级分组和中断优先级问题

[复制链接]

2

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-10-27
在线时间
3 小时
发表于 2021-2-8 16:01:33 | 显示全部楼层 |阅读模式
14金钱
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置优先级分组2
NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=5;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=5;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);


读了别人的代码 为什么设置了优先级分组2 还可以配置NVIC_IRQChannelPreemptionPriority 和.NVIC_IRQChannelSubPriority 为5 啊 按照优先级分组2 不是最多3么

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2021-2-8 16:01:34 | 显示全部楼层
回复

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2021-3-11
在线时间
33 小时
发表于 2021-3-13 16:45:32 | 显示全部楼层
蹲个原子哥解答
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2017-11-14
在线时间
34 小时
发表于 2021-3-13 21:24:54 | 显示全部楼层
0x05会被去头,变成 (0x05&0x03) = 0x01,有效位是低2位。
比如:分组2时,主优先级低2位有效,副优先级低2位有效;
比如:分组1时,主优先级低1位有效,副优先级低3位有效;

顺便提醒,cortex-m3原本优先级配置有8位,stm32阉割成4位了。
参考文档 PM0056 125页 135页
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2017-11-14
在线时间
34 小时
发表于 2021-3-13 21:31:47 | 显示全部楼层
0x05会变成(0x05&0x03)= 0x01;低2位有效
比如:分组1,主优先级低1位有效,副优先级低3位有效
比如:分组2,主优先级低2位有效,副优先级低2位有效
这个看一下库函数具体实现就明白了

参考文档 PM0056 125页 135页
顺便提醒 原本corte-m3内核优先级控制有8位,stm32阉割成4位了
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2017-11-14
在线时间
34 小时
发表于 2021-3-13 21:32:58 | 显示全部楼层
5会变成(5&3)= 1;低2位有效
比如:分组1,主优先级低1位有效,副优先级低3位有效
比如:分组2,主优先级低2位有效,副优先级低2位有效
这个看一下库函数具体实现就明白了

参考文档 《PM0056》 125页 135页
顺便提醒 原本cortex-m3内核优先级控制有8位,stm32阉割成4位了
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2017-11-14
在线时间
34 小时
发表于 2021-3-13 21:33:52 | 显示全部楼层
5会变成(5&3)= 1;低2位有效
比如:分组1,主优先级低1位有效,副优先级低3位有效
比如:分组2,主优先级低2位有效,副优先级低2位有效
这个看一下库函数具体实现就明白了

参考文档 《PM 0056》 125页 135页
顺便提醒 原本cortex-m 3内核优先级控制有8位,st m 32阉割成4位了
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2017-11-14
在线时间
34 小时
发表于 2021-3-13 21:34:19 | 显示全部楼层
5会变成(5&3)= 1;低2位有效
比如:分组1,主优先级低1位有效,副优先级低3位有效
比如:分组2,主优先级低2位有效,副优先级低2位有效
这个看一下库函数具体实现就明白了

参考文档 《PM 0056》 125页 135页
顺便提醒 原本cortex-m 3内核优先级控制有8位,st m 32阉割成4位了
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2017-11-14
在线时间
34 小时
发表于 2021-3-13 21:35:18 | 显示全部楼层
为什么无法回复
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2017-11-14
在线时间
34 小时
发表于 2021-3-13 21:36:35 | 显示全部楼层
5会变成(5&3)= 1;低2位有效
比如:分组1,主优先级低1位有效,副优先级低3位有效
比如:分组2,主优先级低2位有效,副优先级低2位有效
这个看一下库函数具体实现就明白了

参考文档 《PM 0056》 125页 135页
顺便提醒 原本cortex-m 3内核优先级控制有8位,st m 32阉割成4位了
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2017-11-14
在线时间
34 小时
发表于 2021-3-13 21:50:13 | 显示全部楼层
5会变成(5&3)= 1;低2位有效
比如:分组1,主优先级低1位有效,副优先级低3位有效
比如:分组2,主优先级低2位有效,副优先级低2位有效
这个看一下库函数具体实现就明白了

参考文档 《PM 0056》 125页 135页
顺便提醒 原本cortex-m 3内核优先级控制有8位,st m 32阉割成4位了
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2017-11-14
在线时间
34 小时
发表于 2021-3-13 22:07:57 | 显示全部楼层
5会变成(5&3)= 1;低2位有效
比如:分组1,主优先级低1位有效,副优先级低3位有效
比如:分组2,主优先级低2位有效,副优先级低2位有效
这个看一下库函数具体实现就明白了

参考文档 《PM 0056》 125页 135页
顺便提醒 原本cortex-m 3内核优先级控制有8位,st m 32阉割成4位了
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2017-11-14
在线时间
34 小时
发表于 2021-3-13 22:45:49 | 显示全部楼层
5会变成(5&3)= 1;低2位有效 比如:分组1,主优先级低1位有效,副优先级低3位有效 比如:分组2,主优先级低2位有效,副优先级低2位有效 这个看一下库函数具体实现就明白了  参考文档 《PM 0056》 125页 135页 顺便提醒 原本cortex-m 3内核优先级控制有8位,st m 32阉割成4位了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 15:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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