MM32F0/L0/W0系列MCU之EXTI
一、MM32嵌套向量中斷控制器本文針對MM32F0/L0/W0系列MCU產(chǎn)品。
特征
中斷都可屏蔽(除了 NMI)
16 個可編程的優(yōu)先等級(使用了 4 位中斷優(yōu)先級)
低延遲的異常和中斷處理
電源管理控制
系統(tǒng)控制寄存器的實現(xiàn)
嵌套向量中斷控制器(NVIC)和處理器核的接口緊密相連,可以實現(xiàn)低延遲的中斷處理和高效地處理晚到的中斷。嵌套向量中斷控制器管理著包括核異常等中斷。關(guān)于更多的異常和 NVIC 編程的說明請參考 CPU 技術(shù)手冊。
系統(tǒng)嘀嗒(SysTick)校準(zhǔn)值寄存器
系統(tǒng)嘀嗒校準(zhǔn)值固定為 9000,當(dāng)系統(tǒng)嘀嗒時鐘設(shè)定為 9MHz(HCLK/8 的最大值),產(chǎn)生1mS 時間基準(zhǔn)。
中斷和異常向量
下表列出了 MM32L0 系列產(chǎn)品的向量表。
MM32L0xx 系列產(chǎn)品的向量表
二、外部中斷/事件控制器(EXTI)
外部中斷和時間控制器(EXTI)管理外部和內(nèi)部異步事件/中斷,并生成相應(yīng)的事件請求到 CPU/中斷控制器和到電源管理的喚醒請求。
每個輸入線可以獨(dú)立地配置輸入類型(脈沖或掛起)和對應(yīng)的觸發(fā)事件(上升沿或下降
沿或者雙邊沿都觸發(fā))。每個輸入線都可以獨(dú)立地被屏蔽。掛起寄存器保持著狀態(tài)線的中斷請求。
功能說明
要產(chǎn)生中斷,必須先配置好并使能中斷線。根據(jù)需要的邊沿檢測設(shè)置 2 個觸發(fā)寄存器,同時在中斷屏蔽寄存器的相應(yīng)位寫1允許中斷請求。當(dāng)外部中斷線上發(fā)生了期待的邊沿時,將產(chǎn)生一個中斷請求,對應(yīng)的掛起位也隨之被置1。在掛起寄存器的對應(yīng)位寫1,將清除該中斷請求。
如果需要產(chǎn)生事件,必須先配置好并使能事件線。根據(jù)需要的邊沿檢測通過設(shè)置 2 個觸發(fā)寄存器,同時在事件屏蔽寄存器的相應(yīng)位寫1允許事件請求。當(dāng)事件線上發(fā)生了需要的邊沿時,將產(chǎn)生一個事件請求脈沖,對應(yīng)的掛起位不被置1。
通過在軟件中斷/事件寄存器寫1,也可以通過軟件產(chǎn)生中斷/事件請求。
外部中斷/事件線路映像
通用 I/O 端口以下圖的方式連接到 16 個外部中斷/事件線上:
外部中斷通用 I/O 映像
另外其他的外部中斷/事件控制器的連接如下:
EXTI 線 16 連接到 PVD 輸出
EXTI 線 18 連接到 USB 喚事件
EXTI 線 19 連接到比較器 1 輸出
EXTI 線 20 連接到比較器 2 輸出
三、按鍵中斷檢測實驗分析
實驗內(nèi)容簡介
以MM32L073PF為例,將PA0連接到按鍵上,如果按鍵按下將會產(chǎn)生按鍵中斷,在中斷服務(wù)子程序中進(jìn)行LED的翻轉(zhuǎn)。
實驗代碼分析
首先我們從main函數(shù)開始分析,代碼如下:
使用LED_Init()配置好LED所使用的I/O,并且關(guān)掉LED。然后進(jìn)行外部中斷的配置。
選定要配置為 EXTI 的 I/O 口線和 I/O 口的工作模式。
配置 EXTI 中斷線 I/O。
EXTI 中斷線工作模式配置。
配置 EXTIx 線的中斷優(yōu)先級。
接下來看中斷服務(wù)子函數(shù):
在中斷服務(wù)子函數(shù)里進(jìn)行LED的翻轉(zhuǎn)。
實驗現(xiàn)象
下載好程序后,按下按鍵時LED點(diǎn)亮,再按下按鍵時LED熄滅,如此循環(huán)。
如需要了解更多靈動微MCU產(chǎn)品,請聯(lián)系靈動微核心代理商-穎特新科技
編輯:ls 最后修改時間:2022-06-10