一口气管理几十个中断不是问题
点击上方“大鱼机器人”,选择“置顶/星标公众号”
福利干货,第一时间送达!
阅读文本大概需要 2 分钟。
0
前言
昨天写过一篇关于全局变量的处理方法:我是这样用extern的
今天还想给大家分享一点关于单片机编程的小技巧:
如何统一管理单片机的所有中断?
1
一般如何处理中断优先级
众所周知,在使用定时器、外部中断以及串口,我们都需要对一些寄存器进行配置,例如对STM32的外部中断5进行配置时:
同样,如果需要使用定时器中断,我们在配置完定时器寄存器之后,还需要配置NVIC中断。
试想,如果在整个程序中,我们需要使用2个定时器中断,3个串口中断。
需要5个初始化函数来配置。在配置的函数中,需要反复修改的地方也只有NVIC这部分。
因为我们在程序的调试中,可能需要修改中断优先级也就是谁先进行中断处理,谁后中断处理。
试想!
如果同时需要修改这5个初始化函数中的NVIC配置,是不是需要打开这些函数!
而且这些初始化函数不一定在一个文件中,是在多个文件,这得多麻烦!
那么如何解决呢?
2
我们可以换一种方式
最简单的处理方式:
把NVIC中断管理这部分的代码都放在一个文件中,统一修改,统一配置
这样我们就能一次性管理所有的中断~
3
以STM32为例
一 、我们可以把需要使用的中断管理都放在一个函数,看图
(图一)
二 、我们可以把需要使用的中断全部都配置好放在这个函数中,不需要使用的中断可以直接注释掉。需要的中断删掉注释即可。
(图二)
个人觉得,这样管理起来特别方便且美观。
注:上述示例代码是我自己写的一款平衡小车的代码,公众号后台回复[大车]即可获取
3
最后
若觉得文章对你有帮助,随手点“在看”、转发分享,也是我继续更新的动力。
长按识别图中二维码关注
推荐阅读:
PCB工程师的7个好习惯
哇,电路中居然放了0欧的电阻!!!
//end
这么“好”的文章, 转发+收藏~
一口气管理几十个中断不是问题相关推荐
- 为您解答erp管理软件物料管理的十个问题
在很多生产型企业中,erp管理软件是关乎整个供应链正常运行的基础保障,而物料管理是其中重要的一部分,erp管理软件在企业物料管理中得到应用,成为加强企业内部控制.提高物资管理效率的重要保障,erp管理 ...
- 【Linux 内核】Linux 内核体系架构 ( 进程调度 | 内存管理 | 中断管理 | 设备管理 | 文件系统 )
文章目录 一.进程调度 二.内存管理 三.中断管理 四.设备管理 五.文件系统 一.进程调度 进程调度 : 进程 是 系统中 进行 资源分配 的 基本单位 ; 每个进程 在 运行时 , 都 感觉自己占 ...
- Linux中的中断管理机制
1.中断相关基础知识介绍 1.1.中断产生背景 假设现在CPU需要去获取一个键盘的时间,如果处理器发出一个请求信号之后一直在轮询键盘的响应,由于键盘响应速度比处理器慢得多并且需要等待用户输入,这对于C ...
- micropython中断优先级_中断管理 - RT-Thread 文档中心
中断管理 什么是中断?简单的解释就是系统正在处理某一个正常事件,忽然被另一个需要马上处理的紧急事件打断,系统转而处理这个紧急事件,待处理完毕,再恢复运行刚才被打断的事件.生活中,我们经常会遇到这样的场 ...
- Addon SuperEdge 让原生 K8s 集群可管理边缘应用和节点
作者 梁豪,腾讯TEG工程师,云原生开源爱好者,SuperEdge 开发者,现负责TKEX-TEG容器平台运维相关工作. 王冬,腾讯云TKE后台研发工程师,专注容器云原生领域,SuperEdge 核心 ...
- 谷歌公开了内部管理Infra层的两个工具的Paper
更多内容关注微信公众号:fullstack888 随着企业的逐步成熟,他们会开发更多工具.在Google,我们持续创建新的外部和内部服务,以及支持这些服务的基础架构. 从2013年起,我们开始放弃之前 ...
- 如何基于IT事件全生命管理周期,提升业务连续性?
进入数字化时代,IT架构面临的复杂性越来越高,业务连续性管理这项IT最基本的工作,也成为了很多行业或企业IT运维的最核心任务:业务连续性管理是一个持续不断提升的过程,围绕"快速发现事件→快速 ...
- Linux中断(interrupt)子系统之一:中断系统基本原理【转】
转自:http://blog.csdn.net/droidphone/article/details/7445825 这个中断系列文章主要针对移动设备中的Linux进行讨论,文中的例子基本都是基于AR ...
- 操作系统学习:内存分页与中断
本文参考书籍 1.操作系统真相还原 2.Linux内核完全剖析:基于0.12内核 3.x86汇编语言 从实模式到保护模式 ps:基于x86硬件的pc系统 内存分页机制 内存信息的获取 在进行内存分页之 ...
最新文章
- 阿里“三活”数据中心实践经验:没人能做,我们就自己做
- linux 修改时区_【003】一文全面掌握Linux初始化进程(超详细)
- 第四范式团队KDD Cup世界冠军方案详解:解密共享出行场景中的优化问题
- Linux 系统上出现^H
- android 5.0状态栏下载地址,Android沉浸式状态栏(5.0以上系统)
- python3数据科学入门与实战_Python3学习之Python3数据科学入门与实战视频教程
- 计算机软考可以直接高级吗,计算机软考没有中级能考高级吗
- 从零开始带你成为消息中间件实战高手_系统化开课了,电子入门一切从零开始,喜欢电子的有机会学习了...
- dcdc升压计算器excel_DC-DC电路计算器app下载|DC-DC电路计算器安卓版下载_v1.0.1_9ht安卓下载...
- js制作网页动态背景
- git里面的文件怎么删不掉_git如何删除已经提交的文件夹
- 怎样练出完美肌肉:[2]完美背肌
- 计算机操作系统之设备管理思维导图
- 常用字符串库函数总结
- java 汇率换算_已知外汇牌价折算汇率
- Ubuntu 20.4 美化桌面、美化引导界面、Mac 既视感
- 鸡尾酒问题,最小二乘法和范数的思考
- php mysql英文资料,Sams Teach Yourself PHP MySQL 英文CHM下载_PHP教程
- Shell脚本相关命令
- 蘑菇街Java工资_【蘑菇街工资】java开发工程师待遇-看准网
热门文章
- text determination debug screenshot
- SAP UI5 webIDE good build and bad build
- Reporting Area and Available Characteristics
- Java注解研究之@Required
- 如何使用TCP套接字的端口来区分是哪个客户端发起的连接
- SAP CRM one order框架到了S/4HANA后是如何重构的
- Jmeter在运行结果中文出现乱码问题
- php魔术方法例子,PHP中魔术方法的使用举例
- 一个大型虚拟项目包含位于不同地点的许多干系人_项目管理与人生
- 关于python语言数值操作符、以下选项错误的是 答案是_关于Python注释,以下选项中描述错误的是...