一口气管理几十个中断不是问题
點擊上方“大魚機器人”,選擇“置頂/星標公眾號”
福利干貨,第一時間送達!
閱讀文本大概需要 2 分鐘。
? 0??
?前言昨天寫過一篇關于全局變量的處理方法:我是這樣用extern的
今天還想給大家分享一點關于單片機編程的小技巧:
如何統一管理單片機的所有中斷?
? 1??
?一般如何處理中斷優先級眾所周知,在使用定時器、外部中斷以及串口,我們都需要對一些寄存器進行配置,例如對STM32的外部中斷5進行配置時:
同樣,如果需要使用定時器中斷,我們在配置完定時器寄存器之后,還需要配置NVIC中斷。
試想,如果在整個程序中,我們需要使用2個定時器中斷,3個串口中斷。
需要5個初始化函數來配置。在配置的函數中,需要反復修改的地方也只有NVIC這部分。
因為我們在程序的調試中,可能需要修改中斷優先級也就是誰先進行中斷處理,誰后中斷處理。
試想!
如果同時需要修改這5個初始化函數中的NVIC配置,是不是需要打開這些函數!
而且這些初始化函數不一定在一個文件中,是在多個文件,這得多麻煩!
那么如何解決呢?
? 2??
?我們可以換一種方式最簡單的處理方式:
把NVIC中斷管理這部分的代碼都放在一個文件中,統一修改,統一配置
這樣我們就能一次性管理所有的中斷~
? 3??
?以STM32為例一 、我們可以把需要使用的中斷管理都放在一個函數,看圖
(圖一)
二 、我們可以把需要使用的中斷全部都配置好放在這個函數中,不需要使用的中斷可以直接注釋掉。需要的中斷刪掉注釋即可。
(圖二)
個人覺得,這樣管理起來特別方便且美觀。
注:上述示例代碼是我自己寫的一款平衡小車的代碼,公眾號后臺回復[大車]即可獲取
? 3??
?最后若覺得文章對你有幫助,隨手點“在看”、轉發分享,也是我繼續更新的動力。
長按識別圖中二維碼關注
推薦閱讀:
PCB工程師的7個好習慣
哇,電路中居然放了0歐的電阻!!!
//end
這么“好”的文章, 轉發+收藏~
總結
以上是生活随笔為你收集整理的一口气管理几十个中断不是问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我是这样用extern的...
- 下一篇: embed是什么函数