(零基础请看本篇,有基础的直接跳)
下一篇内容会涉及外部中断的配置代码、中断处理函数的编写,
下下篇会围绕中断控制器展开,涉及“中断向量表”和“中断嵌套”的内容。
前言
写《stm32基础项目——智能小车(红外避障)》时发现,对零基础的学弟学妹来说直接上手有些困难,因此还是讲讲有关中断的概念。
一、何为“中断”?
大白话就是:“cpu运行时被其他事件打断,然后放下手中的事转而去执行其他的事”,与中断相对应的还有个概念叫“查询”。关于这两个概念,我举个例子你就明白了。
例:消防官兵执勤
平时消防官兵都在训练,有火情发生时,热心群众会打119通报火情,消防员接到电话后立即出勤灭火。
热心群众打电话通告火情就是“中断”,那“查询”是什么情况呢?
“查询”就是消防官兵整天都在城里巡逻,上午在长安区,中午在雁塔区、下午又到了碑林区,比如这时候莲湖区发生火灾了,但没有群众打电话,那只能等消防员自己巡逻到莲湖区才知道着火了,进而才会灭火。
这个例子很恰当地展示了“中断”往往是“及时的”,而“查询”很可能发生“延迟”,延迟的后果往往是很严重的。
再举个例子,你用笔记本在刷B站视频的时候为什么点一下鼠标视频就暂停了?这起始就是一种中断(具体的实现方式也可以是使用了定时查询做法,但定时查询其实也是一种中断)。
二、何为“外部中断”
有“外部中断”其实就有“内部中断”,这个内外是相对于cpu而言的,“外部中断”对cpu来说是突发的、异步的,而“内部中断”对cpu来说是突发的、同步的。
举个例子:
cpu在给你放视频的时候,你点了下鼠标,这就是突发的、异步的,是外部中断。
cpu在放视频的时候,突然有条指令它自己不认识,这时候它不放视频了而是去执行另一段程序。这就是突发的、同步的,之所以说它是同步的,是因为cpu被打断的时候是本身执行的代码有问题,而不是外部产生的事件打断了它。
其实“内部中断”也叫异常,常见的异常有“除数为零异常”、“未定义指令异常”、“swi异常”等。
说到“swi异常”其实就又有“软中断”的概念,这个等你们学了《微机原理》跟x86汇编就懂了。在x86中还有一个“陷阱”的概念,这里就不展开了,严格来说,中断的概念属于异常,但也不用做过多的区分,你理解是什么意思就可以了。
“中断”,尤其是“外部中断”是我们控制cpu的一种重要手段,学会使用“外部中断”才能让cpu更高效地为你工作。
三、中断的机制
看完前两部分,你只要对“中断”有个概念理解就行了,至于“异常”、“软中断”什么的你可以先不用管。
中断的机制其实就是我们编程的套路,前面我们讲过“中断发生时cpu会被打断,转而去执行其他的事”,这个“其他的事”其实就是我们要编写的重要代码。等于说,外部中断发生时,cpu会去执行一段我们之前编写好的代码,这段代码可以是点亮一个灯、驱动一个蜂鸣器、显示一张图片等等。
四、中断上下文
中断发生时,cpu要放下手中的事,转而去执行其他的事,等其他的是执行完毕后还要在继续之前的事,因此这就涉及“上下文的存储和恢复”,上下文就是指寄存器里的数据,保存上下文就是把寄存器数据入栈、恢复上下文就是把数据出栈。
寄存器:你可以理解为一个个小盒子,里面是放数据的。
栈:这是个数据结构,你可以自己了解一下。
五、小结
这篇是面向零基础的、刚进班的大一、大二学弟学妹,因此讲了很多的概念,下一篇内容会涉及外部中断的配置代码、中断处理函数的编写,下下篇会围绕中断控制器展开有关“中断向量表”和“中断嵌套”的内容。
更多内容移步公众号“游侠嵌入式”,传帮带大本营,学长学姐带你飞。

stm32——外部中断及中断概念小讲(一)(初学者参考)相关推荐

  1. eem二级c语言题库哪种比较好,c语言小知识,供初学者参考

    1 用预处理指令 define 声明一个常数 用以表明 1 年中有多少秒 忽略闰年问题 define SECONDS PER YEAR 60 60 24 365 UL 2 写一个 标准 宏 MIN 这 ...

  2. hal库开启中断关中断_「正点原子NANO STM32开发板资料连载」第十章 外部中断实验...

    1)实验平台:ALIENTEK NANO STM32F411 V1开发板 2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第十章 外 ...

  3. STM32外部中断与(NVIC)中断优先级管理

    文章目录 1.中断介绍 1.中断的概念 2.中断的产生 3.中断处理的流程 2.STM32内嵌向量中断控制器NVIC 1.NVIC控制器的寄存器 2.STM32中断配置 3.STM32外部中断EXIT ...

  4. hal库开启中断关中断_(2)STM32使用HAL库操作外部中断——理论讲解

    1.中断触发过程 对主程序压栈--把中断服务函数的地址写入到程序计数器(PC)--执行中断服务函数 2.中断向量表 中断服务函数的地址在STM32的手册上的中断向量表中(如下是一部分): 如上表所示, ...

  5. STM32外部中断与看门狗

    STM32外部中断与看门狗 前面说过中断的概念了,但是没有细究,中断除了内部中断(比如运行错误),还能受到外部中断 文章目录 STM32外部中断与看门狗 一 外部中断描述 1.1 外部中断描述 1.2 ...

  6. STM32 关于外部中断线、中断源和中断服务函数的问题

    STM32 关于外部中断线.中断源和中断服务函数的问题 中断线问题: 上图可以看出,PA0.PB0...PG0共用的EXTI0中断线,PA1.PB1...PG1共用的EXTI1中断线,也就是 编程里面 ...

  7. STM32(六)-------中断(外部中断)

    STM32中断应用 中断知识介绍 STM32 中断应用概览 异常 NVIC 优先级定义 中断编程 外部中断实例 需求介绍 LED LED.H LED.C EXTI EXTI.H EXTI.C stm3 ...

  8. STM32 外部中断详解(原理+配置代码)

    本文介绍了STM32基于标准外设库的外部中断配置,以及基于参考手册如何更加寄存器配置外部中断 文章目录 1 前言 2 STM32的外部中断 3 中断服务函数的映射关系 4 外部中断的配置 5 寄存器的 ...

  9. STM32外部中断及串口

    一.外部中断的类型 STM32F4 外部中断/事件控制器(EXTI)包含多达 23 个用于产生事件/中断 请求的边沿检测器.EXTI 的每根输入线都可单独进行配置,以选择类型(中断 或事件)和相应的触 ...

最新文章

  1. Android之javax.net.ssl.SSLPeerUnverifiedException: Hostname ip not verified:解决办法
  2. static 二次理解
  3. 在组策略中用户策略仅对特定计算机生效,将组策略应用到满足条件的计算机---配置组策略筛选...
  4. gem5的安装、编译及运行
  5. 农业知识图谱(KG):农业领域的信息检索,命名实体识别,关系抽取,分类树构建,数据挖掘...
  6. git回退历史版本无法上传_Git实用教程(四) | Git本地库操作(查看提交历史、版本前进回退)...
  7. NO.4 计算有序数组的平方
  8. addr2line方法使用总结
  9. 基于SPRINGBOOT高速交警日常办公管理系统
  10. LU分解_SVD分解
  11. 25个常用Matplotlib图的Python代码
  12. iOS 常用第三方库
  13. VMware破解密码
  14. 关于闲鱼测试数据构造,我有几条心得
  15. 5G赋能新文旅 巡天遥看一千河
  16. 神经网络不work该怎么办!看看这11条
  17. 电脑显示不了WiFi的解决方法
  18. 西瓜书(周志华)课后习题答案
  19. 利用VBScript连接mysql数据库_过路老熊_新浪博客
  20. 申报市级瞪羚企业应具备的基本条件

热门文章

  1. 人力资源行业竞争要素分析
  2. 字体下载大宝库:12款好看的免费英文字体
  3. 回调函数定位(如何根据函数指针获得函数名)
  4. 跟着陶哲轩一起学数学(二): 罗素悖论
  5. 失眠不仅仅是睡不着,出现这些情况也算失眠
  6. 加速度传感器工作原理
  7. ContentProvider 实战
  8. js验证身份证号的真实性
  9. Python登陆人人网
  10. 黑客操纵“肉鸡” 攻击网游服务器