与51不同,stm32的中断分类更灵活。51只是按先后顺序大小排列互相打断。
stm32中多了响应优先级这一概念。
stm32的中断分为 1.抢占(占先)优先级。 2.响应优先级。
1.抢占优先级。抢占优先级高的中断,可以打断抢占优先级低的中断。
2.响应优先级。抢占优先级相同的中断,响应优先级高的可以优先执行。
也许会有疑问:抢占优先级相同的中断,响应优先级高的不可以打断响应优先级低的中断。两个中断肯定是谁先来了就相应谁,两个中断不可能同时来。响应优先级又有何用呢。
其实,响应优先级主要给出了一种响应的优先队列。假设中断的抢占优先级都相同。如果有多个相同抢占优先级的中断来了 ,那么他们不会互相打断,但是他们后续的排队会按照响应优先级排队。也就是说,在第一个中断没有执行完的期间内,后续的最高级的响应优先级是被安排到最高等待位处理的。
这为原子操作提供了可能,也就是不可被打断的操作。
有何正误,请指!