MM32F0/L0/W0系列MCU之EXTI
一、MM32嵌套向量中斷控制器本文針對(duì)MM32F0/L0/W0系列MCU產(chǎn)品。
特征
中斷都可屏蔽(除了 NMI)
16 個(gè)可編程的優(yōu)先等級(jí)(使用了 4 位中斷優(yōu)先級(jí))
低延遲的異常和中斷處理
電源管理控制
系統(tǒng)控制寄存器的實(shí)現(xiàn)
嵌套向量中斷控制器(NVIC)和處理器核的接口緊密相連,可以實(shí)現(xiàn)低延遲的中斷處理和高效地處理晚到的中斷。嵌套向量中斷控制器管理著包括核異常等中斷。關(guān)于更多的異常和 NVIC 編程的說(shuō)明請(qǐng)參考 CPU 技術(shù)手冊(cè)。
系統(tǒng)嘀嗒(SysTick)校準(zhǔn)值寄存器
系統(tǒng)嘀嗒校準(zhǔn)值固定為 9000,當(dāng)系統(tǒng)嘀嗒時(shí)鐘設(shè)定為 9MHz(HCLK/8 的最大值),產(chǎn)生1mS 時(shí)間基準(zhǔn)。
中斷和異常向量
下表列出了 MM32L0 系列產(chǎn)品的向量表。
MM32L0xx 系列產(chǎn)品的向量表


二、外部中斷/事件控制器(EXTI)
外部中斷和時(shí)間控制器(EXTI)管理外部和內(nèi)部異步事件/中斷,并生成相應(yīng)的事件請(qǐng)求到 CPU/中斷控制器和到電源管理的喚醒請(qǐng)求。
每個(gè)輸入線可以獨(dú)立地配置輸入類型(脈沖或掛起)和對(duì)應(yīng)的觸發(fā)事件(上升沿或下降
沿或者雙邊沿都觸發(fā))。每個(gè)輸入線都可以獨(dú)立地被屏蔽。掛起寄存器保持著狀態(tài)線的中斷請(qǐng)求。
功能說(shuō)明
要產(chǎn)生中斷,必須先配置好并使能中斷線。根據(jù)需要的邊沿檢測(cè)設(shè)置 2 個(gè)觸發(fā)寄存器,同時(shí)在中斷屏蔽寄存器的相應(yīng)位寫1允許中斷請(qǐng)求。當(dāng)外部中斷線上發(fā)生了期待的邊沿時(shí),將產(chǎn)生一個(gè)中斷請(qǐng)求,對(duì)應(yīng)的掛起位也隨之被置1。在掛起寄存器的對(duì)應(yīng)位寫1,將清除該中斷請(qǐng)求。
如果需要產(chǎn)生事件,必須先配置好并使能事件線。根據(jù)需要的邊沿檢測(cè)通過設(shè)置 2 個(gè)觸發(fā)寄存器,同時(shí)在事件屏蔽寄存器的相應(yīng)位寫1允許事件請(qǐng)求。當(dāng)事件線上發(fā)生了需要的邊沿時(shí),將產(chǎn)生一個(gè)事件請(qǐng)求脈沖,對(duì)應(yīng)的掛起位不被置1。
通過在軟件中斷/事件寄存器寫1,也可以通過軟件產(chǎn)生中斷/事件請(qǐng)求。
外部中斷/事件線路映像
通用 I/O 端口以下圖的方式連接到 16 個(gè)外部中斷/事件線上:
外部中斷通用 I/O 映像

另外其他的外部中斷/事件控制器的連接如下:
EXTI 線 16 連接到 PVD 輸出
EXTI 線 18 連接到 USB 喚事件
EXTI 線 19 連接到比較器 1 輸出
EXTI 線 20 連接到比較器 2 輸出
三、按鍵中斷檢測(cè)實(shí)驗(yàn)分析
實(shí)驗(yàn)內(nèi)容簡(jiǎn)介
以MM32L073PF為例,將PA0連接到按鍵上,如果按鍵按下將會(huì)產(chǎn)生按鍵中斷,在中斷服務(wù)子程序中進(jìn)行LED的翻轉(zhuǎn)。
實(shí)驗(yà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)先級(jí)。
接下來(lái)看中斷服務(wù)子函數(shù):

在中斷服務(wù)子函數(shù)里進(jìn)行LED的翻轉(zhuǎn)。
實(shí)驗(yàn)現(xiàn)象
下載好程序后,按下按鍵時(shí)LED點(diǎn)亮,再按下按鍵時(shí)LED熄滅,如此循環(huán)。
如需要了解更多靈動(dòng)微MCU產(chǎn)品,請(qǐng)聯(lián)系靈動(dòng)微核心代理商-穎特新科技

編輯:ls 最后修改時(shí)間:2022-06-10