秉火429笔记之十 EXTI-外部中断/事件
目錄
1. EXTI 簡介
2. EXTI 功能框圖
3. 功能點
4. 編碼要點
1. EXTI 簡介
外部中斷/事件控制器(EXTI)管理了控制器的23個中斷/事件線。每個中斷/事件線都對應有一個邊沿檢測器,可以實現輸入信號的上升沿檢測和下降沿的檢測。EXTI可以實現對每個中斷/事件線進行單獨配置,可以單獨配置為中斷或者事件,以及觸發事件的屬性。
EXTI 控制器的主要特性如下:
- ?每個中斷/事件線上都具有獨立的觸發和屏蔽
- 每個中斷線都具有專用的狀態位
- 支持多達 23 個軟件事件/中斷請求
- 檢測脈沖寬度低于 APB2 時鐘寬度的外部信號。
?
2. EXTI 功能框圖
3. 功能點
要產生中斷,必須先配置好并使能中斷線。
要產生事件,必須先配置好并使能事件線。
通過在軟件中對軟件中斷/事件寄存器寫“1”,也可以產生中斷/事件請求
硬件中斷選擇
要配置 23 根線作為中斷源,請執行以下步驟:
- 配置 23 根中斷線的屏蔽位 (EXTI_IMR)
- 配置中斷線的觸發選擇位(EXTI_RTSR 和 EXTI_FTSR)
- 配置對應到外部中斷控制器 (EXTI) 的 NVIC 中斷通道的使能和屏蔽位,使得 23 個中斷線中的請求可以被正確地響應。
硬件事件選擇
要配置 23 根線作為事件源,請執行以下步驟:
- ?配置 23 根事件線的屏蔽位 (EXTI_EMR)
- ?配置事件線的觸發選擇位(EXTI_RTSR 和 EXTI_FTSR)
軟件中斷/事件選擇
可將這 23 根線配置為軟件中斷/事件線。以下為產生軟件中斷的步驟。
- 配置 23 根中斷/事件線的屏蔽位(EXTI_IMR、EXTI_EMR)
- 在軟件中斷寄存器設置相應的請求位 (EXTI_SWIER)
4. 中斷與事件比較
從上圖可以知道,從外部激勵信號來看,中斷和事件的產生源都可以是一樣的.之所以分成2個部分,由于中斷是需要CPU參與的,需要軟件的中斷服務函數才能完成中斷后產生的結果;但是事件,是靠脈沖發生器產生一個脈沖,進而由硬件自動完成這個事件產生的結果,當然相應的聯動部件需要先設置好,比如引起DMA操作,AD轉換等;
簡單舉例:
外部I/O觸發AD轉換,來測量外部物品的重量;
如果使用傳統的中斷通道,需要I/O觸發產生外部中斷,外部中斷服務程序啟動AD轉換,AD轉換完成中斷服務程序提交最后結果;使用事件通道,I/O觸發產生事件,然后聯動觸發AD轉換,AD轉換完成中斷服務程序提交最后結果;相比之下,后者不要軟件參與AD觸發,并且響應速度也更塊; 使用事件觸發DMA操作,就完全不用軟件參與就可以完成某些聯動任務了。
5. 編碼要點
注:事件機制提供了一個完全有硬件自動完成的觸發到產生結果的通道,不要軟件的參與,降低了CPU的負荷,節省了中斷資源,提高了響應速度(硬件總快于軟件),是利用硬件來提升CPU芯片處理事件能力的一個有效方法;
總結
以上是生活随笔為你收集整理的秉火429笔记之十 EXTI-外部中断/事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言单片机压力传感器报警器,单片机压力
- 下一篇: 如何成为巨量引擎Marketing AP