EXTI,外部中断,是stm32的众多外设之一,属于中断的一种。

它最重要的就是通过检测外部引脚口的电平变化,比如说上升沿,下降沿,以及双边沿,来触发中断,让主程序放下当前的事情,去执行发生中断时应该执行的事情(设置好的函数)。

大概是如上所属,但是其实具体是怎么运行的呢

EXTI是有20个通道指向NCVI(中断的),主要是16个引脚,还有四个复位,以太网乱七八糟的东西,暂时不用管,但是单片机上肯定不止16个引脚,所以这里用到了AFIO选择器,就当引脚号相同时触发中断时,只选择一个进行触发,就比如说过PA0和PB0同时触发了中断,但是AFIO只能选择一个进行触发,因为都连接在一个通道上,接着往下走,涉及到了优先级的概念,因为你想啊,如果两个中断同时触发,你要先处理哪一个呢,那肯定要设置好处理事件的轻重缓急。这个优先级呢,又分为两种,一种为响应优先级,一种为抢占优先级,听这个名字,抢占优先级就更加厉害的样子,确实如此,,就会形成中断嵌套,先执行抢占优先级更加高的,那响应优先级就要弱一些了,如果一个中断正在执行时,一个响应优先级更高的中断发生了,并不会嵌套,依然会执行原来的,不过之后会根据响应优先级的高低排出队伍顺序(通俗的来讲想象成看病,响应优先级直接冲进诊室,让原来正在看病的病人靠边站,而响应优先级顶多插到队伍前面),这个具体是咋设置,有一个设置优先级的4位寄存器,有0、1、2、3、4几种模式,分别表示抢占优先级占的位数,剩下的就是响应优先级所占的位数,然后将通道根据设定的模式分别设定两个优先级的数值就OK了。然后NCVI就可以根据优先级将中断挨个交给cpu处理,其实就是执行中断通道触发的中断函数,注意这里通道5-10,11-15触发的同一个函数。整个流程就是如此了,在说明一点,中断触发之后也不一定非要传到cpu执行中断函数,也可以传到某一外设,让它做事情,这样就会减轻cpu的负担了,称为事件中断。

stm32——EXTI相关推荐

  1. STM32 EXTI外部中断及NVIC的抢占优先级和响应优先级解释

    1.中断类型 从之前的串口实验可以看出,STM32总共分为内部中断和外部中断,内部和外部的配置差别不是很大,外部中断只是多了一步,需要通过 GPIO_EXTILineConfig(uint8_t GP ...

  2. STM32 EXTI外部中断/事件

    一.EXTI外部中断/事件功能框图 1.中断线路:①-②-③-④-⑤ ①输入线:有19个中断/事件输入线(联网型有20个),通过寄存器将这些输入线设置为任意一个GPIO. ②边沿检测电路:选择上升沿触 ...

  3. STM32 EXTI外部中断的使用

    简介: 1.中断系统 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行 中断优先级:当有多个 ...

  4. STM32—EXTI外部中断

    文章目录 一.思路步骤(看懂这张图) 1. 打开RCC时钟树 2.配置GPIO(三种模式) 3.配置AFIO中断引脚选择 4.打开EXTI 5.配置NVIC(先选择组在初始化NVIC) 6.自己书写中 ...

  5. 【嵌入式STM32-05】STM32 外部中断 EXTI 基本原理|库函数程序代码|寄存器

    STM32外部中断 1.中断基本原理 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行 中断 ...

  6. STM32学习(七)

    中断 打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断. 中断的作用和意义 实时控制:在确定时间内对相应事件做出响应,如温度控制. 故障处理:检测到故障,需要第一时间 ...

  7. STM32串口发送接收数据

    目录 1.串口通信 2.串口的结构体 3.如何配置串口的发送 4.通过串口向电脑发送ok字符 5.封装发送字符串函数 6.重定向printf串口发送 7.串口输入控制LED灯开关 遇到的问题 1.串口 ...

  8. STM32-EXTI

    STM32-EXTI 前言 一.功能概述 二.功能详述 1.功能框图 2.中断/事件输入源 3.配置步骤 总结 前言 本片博文主要对STM32 EXTI 外设的总结,以及学习过程中的一些体会.遇到的问 ...

  9. 《小白H5成长之路50》js与PHP配合完成图片上传功能

    "小白!还记得之前我们说过的jQuery中的ajax异步加载数据的方法么?" "记得,之前的代码我这里还有,你看看是不是这个?" 老朱:"恩,没错,通 ...

最新文章

  1. org.hibernate.transientobjectexception:The given object has a null identifier: com.gxuwz.check.entit
  2. Jmeter 通过Groovy保存数据到CSV
  3. apache web_Web发明家预测文化将发生变化,Apache推动一半的互联网发展,等等
  4. android 动态获取全县_android 6.0之后动态获取权限
  5. 中国联通回应5G入网问题:尚未对公众客户开放
  6. eureka自我保护时间_Eureka自我保护机制
  7. HTTP Error: 413 Request Entity Too Large的解决
  8. Python 测试驱动开发(四)测试及重构的目的(下)
  9. python运维脚本部署jdk_Jenkins 为Jenkins添加Windows Slave远程执行python项目脚本
  10. java如何操作视图
  11. HCIA物联网初级考试-第二章物联网常用的通信技术
  12. RobotStudio 示教器编程:MoveL指令
  13. 2022年中南大学计算机考研复试内容是什么
  14. 数据结构与算法 实验5 树、二叉树和森林的基本操作
  15. 回归预测 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多输入单输出
  16. win 2016 ssh_【Win】Print Conductor 全能批量打印工具兼容所有打印机
  17. SyntaxError: Unexpected token u in JSON at position 0
  18. STM32兴趣篇二:模拟汽车OBD接口处的CAN收发信号实验
  19. OpenPose 2019版总结
  20. IO与CPU跟线程的关系

热门文章

  1. 服务器系统启用flash,windows无法启动flash helper service怎么办?_网站服务器运行维护,windows,flash helper service...
  2. 骨传导耳机好不好,骨传导耳机有什么危害
  3. 计算机系统的组成观评课报告,观评课报告
  4. 秦州:“电子商务+贫困户”扶贫模式助力脱贫攻坚
  5. 腾讯云 卸载php,如何完整优雅的卸载腾讯云服务器安全监控组件
  6. win10安装Vmware虚拟机并部署安装Linux系统
  7. 阿拉伯数字转中文大写
  8. linux下的并发编程详解
  9. Altium Designer19中按空格键不能旋转元件的问题
  10. CC3200 调试记录——XDCtools版本导致的编译不过