没有合适的资源?快使用搜索试试~ 我知道了~
首页基于STM32CubeMX的NVIC中断及异常处理讲解及例程
基于STM32CubeMX的NVIC中断及异常处理讲解及例程
1.6k 浏览量
更新于2023-05-24
评论
收藏 792KB DOC 举报
4. 先占优先级也就是抢占优先级,概念等同于51单片机中的中断。假设有两中断先后触发,已经在执行的中断先占优先级如果没有后触发的中断 先占优先级更高,就会先处理先占优先级高的中断。也就是说又有较高的先占优先级的中断可以打断先占优先级较低的中断。这是实现中断嵌套的基础。 次占优先级,也就是响应优先级,只在同一先占优先级的中断同时触发时起作用,先占优先级相同,则优先执行次占优先级较高的中断。次占优先级不会造成中断嵌套。 如果中断的两个优先级都一致,则优先执行位于中断向量表中位置较高的中断。 结论: 1)抢占优先级越小,优先级越高;相同抢占优先级的中断不能嵌套; 2)相同抢占优先级N个中断发生时,响应优先级越小的中断首先执行(不能嵌套),如果响应优先级也均相同,则根据各中断对应向量表的位置来确定,向量表中越靠前的中断先响应。
资源详情
资源评论
资源推荐

("("("("
在这里简单介绍一下 嵌套向量中断控制器!。 就是控制中断响应的。主要由三个参数,
一个是中断使能,一个是抢占优先级,还有一个就是响应优先级。 优先级数值越小,优先级别越
高!
("("("("中断使能很好理解,就是是否开启中断,如果开启中断,则满足中断触发条件时程序会跳到中
断服务程序运行,否则不响应中断主程序继续运行。
("("("("抢占优先级是用来判断一个中断是否可以打断另外一个中断的中断服务程序抢先运行。例如
中断触发,正在运行 中断的服务程序,此时 ) 中断也触发,如果 ) 中断的抢占优先级比 的高,
则程序会打断 的中断服务程序,去运行 ) 的中断服务程序,即中断嵌套。等 ) 的中断服务程序运
行完后继续运行 的中断服务程序。如果 ) 的抢占优先级没有高过 的抢占优先级,则程序不会打
断 的中断服务程序,而是待定 的中断服务程序运行完成后才运行 ) 的中断服务程序。
("("("(响应优先级是用来判断抢占优先级相同的几个中断那个中断会优先响应。如果几个抢占优先相
同的中断同时触发,那么响应优先级高的最先运行。
("("("("判断中断的优先级,先看抢占优先级,抢占优先级高的中断优先级别高。抢占优先级相同的情
况下,响应优先高的中断优先级别高。抢占优先级和响应优先级相同的情况下,更加中断向量表确
定。如下为部分中断向量表,详细的可以查看 *%+ 的数据手册。

1. cortex-m3 支持 256 个中断,其中包含了 16 个内核中断,240 个外部中断。(本博文只介绍 60 个外部可屏蔽
中断)º
2. stm32 只有 84 个中断,包括 16 个内核中断和 68 个可屏蔽中断º
3. stm32f103 上只有 60 个可屏蔽中断,f107 上才有 68 个中断º
4.先占优先级也就是抢占优先级,概念等同于 51 单片机中的中断。假设有两中断先后触发,已经在执行的中
断先占优先级如果没有后触发的中断 先占优先级更高,就会先处理先占优先级高的中断。也就是说又有较高
的先占优先级的中断可以打断先占优先级较低的中断。这是实现中断嵌套的基础。º
次占优先级,也就是响应优先级,只在同一先占优先级的中断同时触发时起作用,先占优先级相同,则优先执
行次占优先级较高的中断。次占优先级不会造成中断嵌套。 如果中断的两个优先级都一致,则优先执行位于
中断向量表中位置较高的中断。
结论:
1)抢占优先级越小,优先级越高;相同抢占优先级的中断不能嵌套;
2)相同抢占优先级 N 个中断发生时,响应优先级越小的中断首先执行(不能嵌套),如果响应优先级也均相同,
则根据各中断对应向量表的位置来确定,向量表中越靠前的中断先响应。
剩余13页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0