查看: 437|回复: 7
打印 上一主题 下一主题

STM32抢占优先级与从优先级

[复制链接] qrcode

28

主题

31

帖子

94

积分

注册会员

Rank: 2

积分
94
楼主
跳转到指定楼层
发表于 2016-5-30 09:14 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
NVIC_IRQChannelPreemptionPriority:先占优先级
NVIC_IRQChannelSubPriority:从优先级
高抢占优先级中断可以打断低抢占优先级的中断,即可中断嵌套。抢占优先级号码越小优先级越高当抢占优先级号码相同时,从优先级号码起作用。同抢占优先级下的中断是不能进行嵌套的,只能根据从优先级的号码进行排队,从优先级号码即为排队号码,号码越低越靠前。


如买火车票一样,系统中设置学生、军人的优先级(抢占优先级)高于普通群众,学生、军人可以抢占系统通道,得到优先买票的权力,但学生、军人之间是不能进行抢占的,只能根据排队(从优先级)来决定谁可以先买到票。


先用函数NVIC_PriorityGroupConfig(NVIC_PriorityGroup_x)决定有几个先占优先级和从优先级。NVIC_PriorityGroup_x可取如下:
NVIC_PriorityGroup_0 => 选择第0组
NVIC_PriorityGroup_1 => 选择第1组
NVIC_PriorityGroup_2 => 选择第2组
NVIC_PriorityGroup_3 => 选择第3组
NVIC_PriorityGroup_4 => 选择第4组






举例:
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);//配置为1组。
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; // 指定抢占式优先级别0,可取0-1
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能中断
NVIC_Init(&NVIC_InitStructure);

NVIC_InitStructure.NVIC_IRQChannel = SPI1_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; // 指定抢占式优先级别1,可取0-1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; // 指定从优先级别0,可取0-7
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; // 指定从优先级别1,可取0-7
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

EXTI0_IRQChannel 抢占优先级比SPI1_IRQChannel、USART1_IRQChannel高,所以EXTI0_IRQChannel中断可以打断正在执行的SPI1_IRQChannel/USART1_IRQChannel中断,实现中断嵌套。
SPI1_IRQChannel、USART1_IRQChannel抢占优先级相等,不能相互打断,即在执行SPI1_IRQChannel/USART1_IRQChannel中断时USART1_IRQChannel/SPI1_IRQChannel中断无法打断。同时产生SPI1_IRQChannel、USART1_IRQChannel中断时,要根据从优先级进行排队,SPI1_IRQChannel从优先级比较高,所以先执行SPI1_IRQChannel中断。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

3

主题

97

帖子

23

积分

新手上路

Rank: 1

积分
23
沙发
发表于 2016-5-30 10:09 AM | 只看该作者
楼主玩STM32很6啊
回复 支持 反对

使用道具 举报

0

主题

67

帖子

4

积分

新手上路

Rank: 1

积分
4
板凳
发表于 2016-5-30 03:02 PM | 只看该作者
看看~
回复 支持 反对

使用道具 举报

58

主题

366

帖子

618

积分

高级会员

Rank: 4

积分
618
地板
发表于 2016-5-30 06:09 PM | 只看该作者
不错哟,感谢分享……
回复 支持 反对

使用道具 举报

3

主题

83

帖子

25

积分

新手上路

Rank: 1

积分
25
5#
发表于 2016-6-2 12:44 PM | 只看该作者
以前看到一篇文章说的很细致,还结合例子
回复 支持 反对

使用道具 举报

0

主题

94

帖子

20

积分

新手上路

Rank: 1

积分
20
6#
发表于 2016-6-3 06:25 PM | 只看该作者
灵澈 发表于 2016-5-30 10:09
楼主玩STM32很6啊

我只是渣渣的伪码农而已
回复 支持 反对

使用道具 举报

2

主题

108

帖子

52

积分

注册会员

Rank: 2

积分
52
7#
发表于 2016-6-3 06:26 PM | 只看该作者
fighter 发表于 2016-6-2 12:44
以前看到一篇文章说的很细致,还结合例子

共同分享
回复 支持 反对

使用道具 举报

274

主题

4305

帖子

8770

积分

论坛元老

Rank: 8Rank: 8

积分
8770
8#
发表于 2016-6-3 06:26 PM | 只看该作者
SingleYork 发表于 2016-5-30 18:09
不错哟,感谢分享……

共同学习\(^o^)/~
回复 支持 反对

使用道具 举报

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

本版积分规则

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