在STM32中有两种中断优先级,1.抢占式中断优先级。2.响应式中断优先级(子优先级)。两种优先级的优先顺序是:抢占式>响应式。
1.抢占式:即当中断来临时,可立马中断此时的操作而去执行抢占式优先级的活儿。高抢占式优先级可以中断低抢占式优先级(中断嵌套)。
2.响应式:即当两个相同抢占式优先级的中断而响应式优先级不同的的中断来临时,先执行高响应式优先级,再执行低响应式优先级的中断。
举个不恰当的例子,这就如同你是一名老师在上课,突然教务处主任来找你,他的级别(抢占优先级)比你高,可以中断你的课程。同样这个时候,校长也来找你办事,由于他的级别(抢占优先级)比教务主任高,所以他可以打断教务主任的事情,也就是中断嵌套,(教务主任肯定会对校长说:你先说,你忙清楚我再说我的事)。这就是抢占优先级的特点。
但是如果今天来找你的是两位校长呢?他们都是校级领导,抢占优先级是同一级。这个时候就要看响应优先级(子优先级)了,一个是正校长,一个是副校长。如果是同时来找你谈话,那么正校长的子优先级大于副校长,则先处理正校长的事,再处理副校长的事。
但是抢占优先级和响应优先级(子优先级)也有差别,那就是若两位校长不是同时来找你谈话的话,而是副校长先来找你,正校长过了一会才来找你,正好看到副校长在跟你说事,这个时候正校长虽然子优先级高于副校长,但也会安静在教室外等候,直到你和副校长的事处理完为止,才会找你谈话。也就是说子优先级没有中断嵌套。