stm32笔记4 - NVIC中断

NVIC中断

CM4内核支持256个中断,其中包含了16个内核中断和240个外部中断(注:这里的外部中断是相对内核中断而言的,非内核中断的其他中断在这里统一成为外部中断),并且具有256级的可编程中断设置。
但是STM32F只用了内核的一部分中断。

  • STM32F40xx/STM32F41xx总共有92个
  • STM32F42xx/STM32F43xx总共有96个中断

STM32F40xx/STM32F41xx的92个中断里面,包括10个内核中断和82个可屏蔽中断,具有16级可编程的中断优先级,而我们常用的就是这82个可屏蔽中断。

中断优先级

stm32F4中断优先级分为 抢占优先级(先占优先级)响应优先级(从优先级)

  • 数值越小的中断优先级越高(无论是抢占优先级hi是响应优先级)
  • 抢占优先级的“抢占”意思为是否能打断其它正在运行的中断处理函数,抢占优先级高就可以打断优先级低的中断,否则就不能
  • 响应优先级的“响应”意思为当两个抢占优先级相等的中断同时发生,系统则需要根据响应优先级的大小来决定优先响应哪一个中断事件。
    (注:响应优先级不能作为判断该中断是否能打断其他中断的依据,就是说当中断A的处理函数正在运行,此时另一个同抢占优先级的中断B发生,不管B的响应优先级是否高于A,都不能打断中断A的中断处理函数)
  • 从以上两点可以看出,抢占优先级 比 响应优先级 要优先考虑。(即:当两个中断发生,如果两个中断的抢占优先级不等,那么抢占优先级高的中断处理函数先运行。当然,如果两个中断的抢占优先级和响应优先级都相等,那么谁先发生就先相应谁。)
  • 中断的打断与抢占称为 中断向量嵌套。下面举个栗子来解释:三个不同中断的抢占优先级如下A<B<C,首先中断A运行一半,B中断发生,程序放下手头上的工作(中断A响应函数)去处理中断B,而中断B还没处理完,此时中断C发生了,程序会先把中断C处理完在回来继续处理中断B为完成的任务,完成B之后才继续处理中断A的剩余任务。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值