STM系列学习(1)STM中断
最近要开始从事嵌入式相关的内容,之前基本上在看书学习,现在把之前的学习内容进行总结,加深印象
前言STM32学习过程
STM32学习主要是依托野火STM32-F103ZE-霸道
参考书籍是《STM32库开发实战指南》基于STM32F1
野火的源代码看了看注释写的非常全,宏定义的方法非常适合二次开发
新手入门新建工程也可以依托这本书
进入正题
作者从51单片机入门的时候,就学习到中断可以实现各种复杂的功能,STM32的中断相比51单片机更加复杂
其中系统中断(内核中断)有10个,为图中的-3~6
系统中断不能够被打断,不能被设置优先级(也就是说优先级是在外部中断之上的)
其余的为外部中断,总共60个
中断优先级
由于STM32的中断数目较多,其优先级也比较复杂。STM32中断优先级寄存器NVIC_IPRx,用来配置外部中断的优先级,寄存器宽度为8bit,实际只使用了4bit
优先级可以分为主优先级(抢占优先级)和子优先级(响应优先级)
为什么要这么分呢?
- 抢占优先级
抢占优先级高的,能够打断优先级低的中断,等优先级较高的中断函数执行完毕后,再回来继续执行之前的中断函数。
当中断的抢占优先级不同时,可能会在低优先级中断执行过程中响应更高优先级的中断。 - 响应优先级
若两个中断的抢占式优先级一样,那么响应优先级较高的中断函数先执行,且在执行的同时不会由于另一个中断产生而终止
下一章研究一下DMA-直接存储区访问