STM32 外部中断的原理与应用分析

本文详细介绍了STM32外部中断的工作原理,包括抢占优先级和响应优先级的概念,中断线的配置,以及中断服务函数的编写。通过NVIC设置中断优先级分组,并提供了一般的中断配置步骤,帮助理解STM32如何处理中断事件。
摘要由CSDN通过智能技术生成

STM32外部中断的原理与应用分析

15468a10ea99a39d805e3cb58d9265a5.png

1、抢占优先级和响应优先级

在了解中断之前,先了解一下它们之间的优先级别。STM32的中断源具有两种优先级:一种为抢占优先级;另一种为响应优先级(亚优先级),其属性编号越小,表明它的优先级别越高。抢占是指打断其他中断的属性,即低抢占优先级的中断A可以被高抢占优先级的中断B打断,执行完中断服务函数B后,再返回继续执行中断服务函数A,由此会出现中断嵌套。响应属性则应用在抢占属性相同的情况下,即当两个中断源的抢占优先级相同时,分以下几种情况处理:

(1)如果两个中断同时到达,则中断控制器会先处理响应优先级高的中断。
(2)当一个中断到来后,如果正在处理另一个中断,则这个后到的中断就要等到前一个中断处理完之后才能被处理(高响应优先级的中断不可以打断低响应优先级的中断)。
(3)如果它们的抢占式优先级和响应优先级都相等,则根据它们在中断表中的排位顺序决定先处理哪一个。
举个例子,现在有3个中断向量,如下图,若内核正在执行C的中断服务函数,则它能被抢占优先级更高的中断A打断,由于B和C的抢占优先级相同,所以C不能被B打断。但如果B和C中断是同时到达的,内核就会首先执行响应优先级别更高的B中断。如果B和C中有一个先到,不管谁的响应优先级高,都不能打断,只能等待。

cc0aefe9b108ace9f34dbabdb6d4b295.png

2、NVIC的优先级组

STM32使用了4个中断优先级的寄存器位,只可以配置16种优先级,即抢占优先级和响应优先级的数量由一个4位的数字来决定,把这个4位数字的位数分配成抢占优先级部分和响应优先级部分。有以下5种分配方式:
第0种:所有4位用于指定响应优先级,即NVIC配置的2的4次方共16种中断向量都是只有响应属性,没有抢占属性。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值