【无标题】STM32 的中断系统

  1.    中断概述

  2.  在主程序运行过程中, 出现了特定事件, 使得 CPU 暂停当前正在运行的程序, 转而去 处理这个事件, 等这个事件处理完成之后, CPU 再回到刚才被打断的位置继续处理, 这就 是中断。 那个打断 CPU 执行的特定事件, 我们一般称之为中断源。 被中断源打断的位置我们称 为断点。 处理特定事件的过程, 我们称为执行中断处理程序。

  3. eeaa3f72d7204c35af4931968ed1c0d8.jpg

     正在执行中断程序的时候, 这个时候有可能被另外一个中断源给中断, CPU 转而去执 行另外一个中断源的中断处理程序, 这叫中断嵌套。 中断 B 能否打断中断 A , 要看他们的优先级, 优先级高的可以打断优先级低的, 优先 级低的无法打断优先级高的。

  4. 2fbccf251958476a80c3c706be890828.jpg

      中断源可以是外部的, 也可以是内部的。 外部的叫外部中断源, 内部的叫内部中断源 ( 内部的中断有时候也叫异常)。 

  5. 为什么需要中断 对单片机系统来说, 中断至关重要。 比如我们要检测按键是否按下, 如果没有中断, 则需要循环的方式不断的去检测按键 对应的 IO 口的电平, 这是比较耗费 CPU 的时间的。 如果要检测的更多的话, CPU 有可能 会导致阻塞。 有了中断事情就变的简单了, 主程序不需要循环不断的去检测按键, 当有按键按下的 时候, CPU 执行被打断, 去执行按键处理程序就行了。 当没有按键按下的时候, CPU 完全 可以正常执行代码, 丝毫不受任何的影响。

 2.STM32 的中断体系架构

嵌套向量中断控制器

     NVIC 的介绍 NVIC ( Nested vectored interrupt controller 嵌套向量中断控制器)和处理器核的接口紧 密相连, 可以实现低延迟的中断处理和高效地处理中断。 嵌套向量中断控制器管理着包括 内核异常, 外部中断等所有中断。 由 NVIC 决定哪个中断的处理程序交给 CPU 来执行。 每一个外部中断都可以被使能或者禁止, 并且可以被设置为挂起状态或者清除状态。 处理器的中断可以是电平形式的, 也可以是脉冲形式的, 这样中断控制器就可以处理任何 中断源。 1 6 个 IO 的中断与 PVD( 电源电压检测 ) , RTC( 实时时钟 ) , USB , 以太网检测这 20 个 外部中断会通过 EXTI 来控制, 然后交给 NVIC 。 其他中断都是直接交给 NVIC 来处理。

 中断优先级

 NVIC 为了方便管理中断, 可以通过软件给每个中断设置优先级。 NVIC 用 4 个位来控 制优先级, 值小的优先级高。 把优先级分为两 种: 抢占优先级和响应优先级。                     规则:1.优先级值越小, 优先级越高。               2. 如果不设置优先级, 则默认优先为 0 。         3. 先比较抢占优先级。 抢占优先级高的可以打断抢占优先级低的。                                        4.若抢占优先级一样, 再比较响应优先级。 但是响应优先级不会导致中断嵌套。                   5. 若抢占优先级一样的同时挂起, 则优先处理 响应抢占优先级高 的。                              6.若挂起的优先级(抢占和响应)都一样, 则查找中断向量表, 值小的先响应。 

NVIC 对优先级分了 5 组, 在程序中先对中断进行分组, 而且分组只能分一次, 若多 次分, 只有最后一次生效。 

cf93e31f399049fb9dffc7e3a2d0190b.jpg 

782c8c276e4f4174adaad350fd34eff5.jpg

 

 3.软件设计( HAL 库)

 STM32CubeMX 配置 f5244af3e9884e73b76e988f33c07f9c.jpg

1.添加中断处理函数

2931f95a682942dc89f2c3f92a79abc9.jpg

 fc28138ac79246b78f252f16e770262d.jpg

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值