stm32简明教程系列(三)——中断

提到单片机就不能不提中断。

一 概述
1. stm32f103上只有43个可屏蔽中断,16个可编程的优先等级中断 
4. 先占优先级也就是抢占优先级,概念等同于51单片机中的中断。假设有两中断先后触发,已经在执行的中断先占优先级如果没有后触发的中断 先占优先级更高,就会先处理先占优先级高的中断。也就是说又有较高的先占优先级的中断可以打断先占优先级较低的中断。这是实现中断嵌套的基础。 
次占优先级,也就是响应优先级,只在同一先占优先级的中断同时触发时起作用,先占优先级相同,则优先执行次占优先级较高的中断。次占优先级不会造成中断嵌套。 如果中断的两个优先级都一致,则优先执行位于中断向量表中位置较高的中断。

总结一下:

高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。

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

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

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

二.NVIC是什么? 
嵌套向量中断控制器;用于为中断分组,从而分配抢占优先级和响应优先级; 
以下是分组:
Cortex-m3内核提供了一种3位宽度的PRIGROUP数据区,用于指示一个8位数据序列中的小数点的位置,从而表示中断优先级的分组。见下表: 

这里以第二组举个例子:这里我们把中断优先级别分成了两位抢占优先级,两位响应优先级。也就是说抢占优先级有二的二次方4个,响应优先级有4个。两个优先级,再组合之后得到4*4=16个中断级别。

猜你喜欢

转载自blog.csdn.net/quinn1994/article/details/82314041