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

入门嵌入式(二)——中断

什么是中断

程序在正常执行的过程中,停下来处理其他事务,处理结束后继续原来的逻辑,这就是中断。

NVIC 嵌套向量中断控制器

中断向量表
名称 -> 处理函数 优先级信息
EXTI0~ EXTI4
EXTI9_5
EXTI15_10

中断结束需要清除请求挂起寄存器,否则会一直触发处理函数。但是CubeMX会自动生成该部分逻辑代码。

优先级

  • 数字越小优先级越高
  • 中断分为抢占优先级和响应优先级
  • 两中断同时发生,先比较抢占优先级
  • 若抢占优先级相同,再比较响应优先级
  • 若响应优先级相同,在中断向量表靠前的触发
  • 四位bit 表示优先级

响应外部中断的内部流程

输入驱动器->外部中断线->边沿检测电路->请求挂起寄存器->NVIC中断控制器->中断处理函数->中断事务逻辑->清除请求挂起寄存器

其他中断

也会涉及:请求挂起寄存器和中断屏蔽寄存器,NVIC,中断向量,中断处理函数

其他

HAL_DELAY()函数需要系统滴答中断


http://www.kler.cn/a/464482.html

相关文章:

  • 《前端web开发-CSS3基础-1》
  • 如何在 VSCode 中配置 C++ 开发环境:详细教程
  • Spring Boot 3 实现 MySQL 主从数据库之间的数据同步
  • 【开源社区openEuler实践】hpcrunner
  • Swift Combine 学习(四):操作符 Operator
  • C++面向对象编程:纯虚函数、抽象类、虚析构、纯虚析构
  • 设计模式 结构型 适配器模式(Adapter Pattern)与 常见技术框架应用 解析
  • CPO-SVMD分解 | Matlab实现CPO-SVMD豪猪算法优化逐次变分模态分解
  • 图像概念与分类
  • Linux下Shell编程之ps命令详解及示例
  • std optional 的使用
  • Redis--高可用(主从复制、哨兵模式、分片集群)
  • commit 错分支的一些补救操作
  • uni-app 多平台分享实现指南
  • 【Unity3D】ECS入门学习(十)NativeContainer、EntityCommandBuffer、CompleteDependency
  • el-table树形懒加载展开改为点击行展开
  • SAP财务凭证的更改、冲销的方式
  • python: generate model and DAL using Oracle
  • 【从零开始入门unity游戏开发之——C#篇43】C#补充知识——值类型和引用类型汇总补充、变量的生命周期与性能优化、值类型和引用类型组合使用
  • 虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)
  • Springboot使用RabbitMQ实现关闭超时订单的一个简单示例
  • 【面试】深入理解 JavaScript 中的 Object.freeze()
  • k8s部署juicefs
  • SpringBoot教程(十四) SpringBoot之集成Redis
  • Vue 全局事件总线:Vue 2 vs Vue 3 实现
  • 一条SQL语句是如何执行的