点击上方“大鱼机器人”,选择“置顶/星标公众号”

福利干货,第一时间送达!

阅读文本大概需要 2 分钟。

0

 前言

昨天写过一篇关于全局变量的处理方法:我是这样用extern的

今天还想给大家分享一点关于单片机编程的小技巧:

如何统一管理单片机的所有中断?

1

一般如何处理中断优先级

众所周知,在使用定时器、外部中断以及串口,我们都需要对一些寄存器进行配置,例如对STM32的外部中断5进行配置时:

同样,如果需要使用定时器中断,我们在配置完定时器寄存器之后,还需要配置NVIC中断。

试想,如果在整个程序中,我们需要使用2个定时器中断,3个串口中断。

需要5个初始化函数来配置。在配置的函数中,需要反复修改的地方也只有NVIC这部分。

因为我们在程序的调试中,可能需要修改中断优先级也就是谁先进行中断处理,谁后中断处理。

试想!

如果同时需要修改这5个初始化函数中的NVIC配置,是不是需要打开这些函数!

而且这些初始化函数不一定在一个文件中,是在多个文件,这得多麻烦!

那么如何解决呢?

2

我们可以换一种方式

最简单的处理方式:

把NVIC中断管理这部分的代码都放在一个文件中,统一修改,统一配置

这样我们就能一次性管理所有的中断~

3

以STM32为例

一 、我们可以把需要使用的中断管理都放在一个函数,看图

(图一)

二 、我们可以把需要使用的中断全部都配置好放在这个函数中,不需要使用的中断可以直接注释掉。需要的中断删掉注释即可。

(图二)

个人觉得,这样管理起来特别方便且美观。

注:上述示例代码是我自己写的一款平衡小车的代码,公众号后台回复[大车]即可获取

3

 最后

若觉得文章对你有帮助,随手点“在看转发分享,也是我继续更新的动力。

长按识别图中二维码关注

推荐阅读:

PCB工程师的7个好习惯

哇,电路中居然放了0欧的电阻!!!

//end

这么“好”的文章, 转发+收藏~

一口气管理几十个中断不是问题相关推荐

  1. 为您解答erp管理软件物料管理的十个问题

    在很多生产型企业中,erp管理软件是关乎整个供应链正常运行的基础保障,而物料管理是其中重要的一部分,erp管理软件在企业物料管理中得到应用,成为加强企业内部控制.提高物资管理效率的重要保障,erp管理 ...

  2. 【Linux 内核】Linux 内核体系架构 ( 进程调度 | 内存管理 | 中断管理 | 设备管理 | 文件系统 )

    文章目录 一.进程调度 二.内存管理 三.中断管理 四.设备管理 五.文件系统 一.进程调度 进程调度 : 进程 是 系统中 进行 资源分配 的 基本单位 ; 每个进程 在 运行时 , 都 感觉自己占 ...

  3. Linux中的中断管理机制

    1.中断相关基础知识介绍 1.1.中断产生背景 假设现在CPU需要去获取一个键盘的时间,如果处理器发出一个请求信号之后一直在轮询键盘的响应,由于键盘响应速度比处理器慢得多并且需要等待用户输入,这对于C ...

  4. micropython中断优先级_中断管理 - RT-Thread 文档中心

    中断管理 什么是中断?简单的解释就是系统正在处理某一个正常事件,忽然被另一个需要马上处理的紧急事件打断,系统转而处理这个紧急事件,待处理完毕,再恢复运行刚才被打断的事件.生活中,我们经常会遇到这样的场 ...

  5. Addon SuperEdge 让原生 K8s 集群可管理边缘应用和节点

    作者 梁豪,腾讯TEG工程师,云原生开源爱好者,SuperEdge 开发者,现负责TKEX-TEG容器平台运维相关工作. 王冬,腾讯云TKE后台研发工程师,专注容器云原生领域,SuperEdge 核心 ...

  6. 谷歌公开了内部管理Infra层的两个工具的Paper

    更多内容关注微信公众号:fullstack888 随着企业的逐步成熟,他们会开发更多工具.在Google,我们持续创建新的外部和内部服务,以及支持这些服务的基础架构. 从2013年起,我们开始放弃之前 ...

  7. 如何基于IT事件全生命管理周期,提升业务连续性?

    进入数字化时代,IT架构面临的复杂性越来越高,业务连续性管理这项IT最基本的工作,也成为了很多行业或企业IT运维的最核心任务:业务连续性管理是一个持续不断提升的过程,围绕"快速发现事件→快速 ...

  8. Linux中断(interrupt)子系统之一:中断系统基本原理【转】

    转自:http://blog.csdn.net/droidphone/article/details/7445825 这个中断系列文章主要针对移动设备中的Linux进行讨论,文中的例子基本都是基于AR ...

  9. 操作系统学习:内存分页与中断

    本文参考书籍 1.操作系统真相还原 2.Linux内核完全剖析:基于0.12内核 3.x86汇编语言 从实模式到保护模式 ps:基于x86硬件的pc系统 内存分页机制 内存信息的获取 在进行内存分页之 ...

最新文章

  1. 阿里“三活”数据中心实践经验:没人能做,我们就自己做
  2. linux 修改时区_【003】一文全面掌握Linux初始化进程(超详细)
  3. 第四范式团队KDD Cup世界冠军方案详解:解密共享出行场景中的优化问题
  4. Linux 系统上出现^H
  5. android 5.0状态栏下载地址,Android沉浸式状态栏(5.0以上系统)
  6. python3数据科学入门与实战_Python3学习之Python3数据科学入门与实战视频教程
  7. 计算机软考可以直接高级吗,计算机软考没有中级能考高级吗
  8. 从零开始带你成为消息中间件实战高手_系统化开课了,电子入门一切从零开始,喜欢电子的有机会学习了...
  9. dcdc升压计算器excel_DC-DC电路计算器app下载|DC-DC电路计算器安卓版下载_v1.0.1_9ht安卓下载...
  10. js制作网页动态背景
  11. git里面的文件怎么删不掉_git如何删除已经提交的文件夹
  12. 怎样练出完美肌肉:[2]完美背肌
  13. 计算机操作系统之设备管理思维导图
  14. 常用字符串库函数总结
  15. java 汇率换算_已知外汇牌价折算汇率
  16. Ubuntu 20.4 美化桌面、美化引导界面、Mac 既视感
  17. 鸡尾酒问题,最小二乘法和范数的思考
  18. php mysql英文资料,Sams Teach Yourself PHP MySQL 英文CHM下载_PHP教程
  19. Shell脚本相关命令
  20. 蘑菇街Java工资_【蘑菇街工资】java开发工程师待遇-看准网

热门文章

  1. text determination debug screenshot
  2. SAP UI5 webIDE good build and bad build
  3. Reporting Area and Available Characteristics
  4. Java注解研究之@Required
  5. 如何使用TCP套接字的端口来区分是哪个客户端发起的连接
  6. SAP CRM one order框架到了S/4HANA后是如何重构的
  7. Jmeter在运行结果中文出现乱码问题
  8. php魔术方法例子,PHP中魔术方法的使用举例
  9. 一个大型虚拟项目包含位于不同地点的许多干系人_项目管理与人生
  10. 关于python语言数值操作符、以下选项错误的是 答案是_关于Python注释,以下选项中描述错误的是...