- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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);//配置为 0 组。
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 中断。
文档评论(0)