中断优先级处理的原则及配置 抢占优先级和响应优先级的区别

描述

首先我们需要知道什么是中断优先级:中断优先级是CPU响应中断的先后顺序

    中断优先处理的原则是:

  1. 先响应优先级高的中断请求,再响应优先级低的中断请求。
  2. 如果一个中断请求己被响应,同级的其他中断请求将被禁止。
  3. 如果同级的多个中断请求同时出现

中断优先级是CPU响应中断的先后顺序。中断优先处理的原则是:

  1. 先响应优先级高的中断请求,再响应优先级低的中断请求。
  2. 如果一个中断请求己被响应,同级的其他中断请求将被禁止。
  3. 如果同级的多个中断请求同时出现,CPU则按单片机内部的自然优先级顺序响应各中断请求。

单片机内部自然优先级顺序(由高到低)为:

外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断

中断优先级的配置:

首先,对STM32中断进行分组,组0-4.同时,对每个中断设置一个抢占优先级和一个响应优先级

分组配置是在寄存器SCB->AIRCR中配置

中断优先级

抢占优先级和响应优先级的区别
高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。

抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。

抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。

如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行。

使用讲解 :
    实际在使用中我们可以根据实际情况设置相应的优先级分组。

特别注意:一个程序代码里只能有一个中断优先级分组,存在多个 优先级分组可能会导致程序出现奇奇怪怪的错误!

中断优先级

  审核编辑:汤梓红
 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
lovecmy 2022-10-24
0 回复 举报
特别注意:一个程序代码里只能有一个中断优先级分组,存在多个 优先级分组可能会导致程序出现奇奇怪怪的错误!????? 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分