今天给大家分享一点关于单片机编程的小技巧:
如何统一管理单片机的所有中断?
1 一般如何处理中断优先级
众所周知,在使用定时器、外部中断以及串口,我们都需要对一些寄存器进行配置,例如对 STM32 的外部中断 5 进行配置时:
同样,如果需要使用定时器中断,我们在配置完定时器寄存器之后,还需要配置 NVIC 中断。
试想,如果在整个程序中,我们需要使用 2 个定时器中断,3 个串口中断。
需要 5 个初始化函数来配置。在配置的函数中,需要反复修改的地方也只有 NVIC 这部分。
因为我们在程序的调试中,可能需要修改中断优先级也就是谁先进行中断处理,谁后中断处理。
试想!
如果同时需要修改这 5 个初始化函数中的 NVIC 配置,是不是需要打开这些函数!
而且这些初始化函数不一定在一个文件中,是在多个文件,这得多麻烦!
那么如何解决呢?
2 我们可以换一种方式
最简单的处理方式:
把 NVIC 中断管理这部分的代码都放在一个文件中,统一修改,统一配置
这样我们就能一次性管理所有的中断~
3 以 STM32 为例
一 、我们可以把需要使用的中断管理都放在一个函数,看图
(图一)
二 、我们可以把需要使用的中断全部都配置好放在这个函数中,不需要使用的中断可以直接注释掉。需要的中断删掉注释即可。
(图二)
个人觉得,这样管理起来特别方便且美观。