当前位置: 首页 > news >正文

STM32中断

中断的基本概念

中断具体定义:操作系统课程里有清晰的阐述。

        STM32中断:中断来了,主程序都得立即暂停,程序由硬件电路自动跳转到中断程序中。中断执行前,进行现场保护;中断执行后,会再还原现场。保证主程序即使被中断了,回来后也能继续运行。用C语言编程,保护现场和还原现场并不需要我们操作(操作系统里面有中断的概念),由编译器做好。C语言程序中中断的执行流程:一般中断程序都是在一个子函数里面,这个函数不需要我们调用,当中断来临时,由硬件自动调用这个函数。

NVIC和中断向量表

        中断通道就是中断源的意思,68个是F1系列最多的中断数量,对于一个具体的型号来说,可能没有这么多中断,所以具体以对应型号的数据手册为准。STM32的中断非常多,几乎所有模块都能申请中断,NVIC就是STM32中用来管理中断,分配优先级的

灰色的部分是系统内核的中断,不是灰色的部分属于STM32外设的中断。
        中断的地址的作用:因为程序中的中断函数,它的地址由编译器分配的,是不固定的。但是中断的跳转,由于硬件限制,只能跳转到固定的地址执行程序,所以为了能让硬件跳转到一个不固定的中断函数里面,就需要在内存中定义一个地址的列表。这个列表地址固定,中断发生后,就跳到这个固定位置。然后有编译器再加上一条跳转到中断函数的代码,这样中断函数就可以跳转到任意位置了。
        中断地址的列表:叫做中断向量表,相当于中断跳转的一个跳板。(不过C语言编程不需要管这个中断向量表,因为编译器帮我们做好了)

NVIC基本结构

        在STM32中,NVIC用来统一分配中断优先级和管理中断的,NVIC是一个内核外设,是CPU的小助手。
STM32中断非常多,如果把中断都接到CPU上,那么CPU得引出很多线进行适配,设计上就很麻烦,并且很多中断同时申请,或者中断很多产生了拥堵,CPU就很难处理,毕竟CPU主要用来做运算的。所以中断分配的任务就放到别的地方。所以NVIC就出现了。
NVIC有很多输入口,有多少个中断线路,都可以接过来。(这里斜杠上写个n,意思是一个外设可能会同时占用多个中断通道,所以有n条线),NVIC只有一个输出口,NVIC根据每个中断的优先级分配中断的先后顺序,通过一个出口告诉CPU该处理哪个中断,对于中断先后顺序分配的任务,CPU不需要知道

        NVIC中断优先级控制:抢占优先级>相应优先级>中断号排队

相关文章:

  • 【Android】基于udp通信的智能家居移动应用开发
  • 强化学习中循环神经网络在序列决策中的应用研究
  • 每日一题-力扣-2680. 最大或值-20250321
  • 机器学习--DBSCAN聚类算法详解
  • [学习笔记] 部署Docker搭建靶场
  • 机器学习实战
  • 比特币驱动金融第七章——比特币:社区、政治与监管的微妙平衡
  • stratis,容器podman
  • 基于3DMax与Vray引擎的轻量级室内场景渲染实践
  • 校园自习室预约小程序(源码+部署教程)
  • 企业磁盘管理实战:常见问题与高效解决方案
  • Spring6: 2 入门
  • Node.js系列(4)--微服务架构实践
  • next.js 组件路由钩子
  • Linux上位机开发实战(能用的开发板计算资源)
  • 3.9 Spring Boot国际化:动态语言切换与数据库存储方案
  • LabVIEW 与 PLC 通讯的常见方式
  • 大数据学习栈记——HBase安装
  • HashMap学习总结——JDK17
  • PHP 应用TP 框架路由访问对象操作内置过滤绕过核心漏洞
  • 总粉丝破亿!当网络大V遇见硬核科技,互联网时代如何书写上海故事?
  • 沃旭能源因成本上升放弃英国海上风电项目,或损失近40亿元
  • 比特币价格重返10万美元,哪些因素使然?
  • 纪念|古文字学泰斗裘锡圭:“还有很多事情要做”
  • 陕西永寿4岁女童被蜜蜂蜇伤致死,当地镇政府介入处理
  • 北京:下调个人住房公积金贷款利率