加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

如何一口气管理几十个中断?

2019/04/12
23
阅读需 7 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

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

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

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


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

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

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

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

试想!

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

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

那么如何解决呢?

2   我们可以换一种方式
最简单的处理方式:

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

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

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

 

(图一)


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


(图二)

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

相关推荐

电子产业图谱

张巧龙,电子信息工程,动力工程硕士。一个爱电子、爱生活的标准工科男。知乎:张巧龙