關于事件、中斷事件 、中斷三個概念的比喻
比如一老師在教室里給學生們上課,課堂上的學生可能做出各種行為動作,比方做筆記、打哈氣、翻書包、講小話等,我們把這些行為統稱為事件,其中有些行為老師往往只是視而不見,繼續他的上課;而有些行為可能導致老師的上課中止,比方講小話,并對學生的相關行為予以警告、批評或糾正等,然后繼續上課,我們把老師因為學生的某些行為而中止授課,并產生后續動作,之后接著上課的這個程序理解為中斷或中斷回應,我們把可能導致老師上課中斷的學生行為理解為中斷事件,
結合具體的ST MCU運行程序
ST MCU運行程序,其中會有許多各種各樣的事件,比方管腳電平變化、計數器溢位、DMA空、FIFO非空、AD轉換結束、超時、外設使能、初始化等等,其中有些事件是不會導致中斷產生的,比方外設使能或部分初始化動作是不會導致中斷發生的,有些事件就可能導致中斷發生,比方計數器溢位,AD轉換結束等,這些就是中斷事件,當然這些中斷事件最終能否觸發后續中斷,得看是否開啟了該中斷事件的中斷使能,相關中斷矢量控制器【NVIC】是否配置,最終讓CPU內核參與進來,并完成后續的中斷服務動作,
既然一個可以觸發中斷的事件可能被配置中斷事件或非中斷事件,那么在相關事件的觸發配置時就出現兩種可能,即允許產生中斷或禁止產生中斷,于是乎,ST MCU參考手冊里在談到事件的觸發方式時就引出了事件模式和中斷模式兩個概念,
例子
比方STM32的GPIO口的電平跳變基本都是可以觸發外部中斷的,但在具體配置時,可以根據需要來決定啟用還是禁用相關腳的中斷功能,從而選擇不同的事件觸發方式,即事件模式和中斷模式,如果不希望電平跳變事件觸發中斷,就配置為事件模式,反之,配置為中斷模式
概念區分
- 需觸發中斷,交給NVIC處理的,也就是軟體上有中斷函式的,叫中斷
- 不要觸發中斷,直接給外設(rg,ADC)的,軟體上沒有中斷函式的,叫事件,
- 觸發中斷,而且軟體上也有中斷函式的,叫中斷事件
總結
可以這樣簡單的認為,事件機制提供了一個完全有硬體自動完成的觸發到產生結果的通道,不要軟體的參與,降低了CPU的負荷,節省了中斷資源,提高了回應速度(硬體總快于軟體),是利用硬體來提升CPU芯片處理事件能力的一個有效方法,
點擊查看本文所在的專輯,STM32F207教程
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/253363.html
標籤:其他
上一篇:Linux運維常用的5款工具詳解
