您当前的位置: 首页 > 

张巧龙

暂无认证

  • 0浏览

    0关注

    1208博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

一口气管理几十个中断不是问题

张巧龙 发布时间:2019-04-10 14:49:12 ,浏览量:0

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

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

640?wx_fmt=gif640?wx_fmt=jpeg

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

  0  

 前言

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

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

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

  1  

 一般如何处理中断优先级

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

640?wx_fmt=png

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

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

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

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

试想!smiley_29.png

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

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

那么如何解决呢?

  2  

 我们可以换一种方式

最简单的处理方式:

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

这样我们就能一次性管理所有的中断~2_02.png2_02.png2_02.png

  3  

 以STM32为例

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

640?wx_fmt=png(图一)

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

640?wx_fmt=jpeg

(图二)

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

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

  3  

 最后

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

640?wx_fmt=jpeg长按识别图中二维码关注

推荐阅读:

PCB工程师的7个好习惯

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

//end

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

关注
打赏
1665727216
查看更多评论
立即登录/注册

微信扫码登录

0.0463s