實驗原理
中斷:當外圍設(shè)備需要請求服務(wù)時,向CPU發(fā)出中斷請求,CPU響應(yīng)外圍設(shè)備中斷,停止執(zhí)行當前程序,轉(zhuǎn)去執(zhí)行一個外圍設(shè)備服務(wù)的程序,此服務(wù)程序稱為中斷服務(wù)處理程序,或稱中斷服務(wù)子程序。中斷處理完畢,CPU又返回來執(zhí)行原來的程序。
中斷類型有圖中的幾種,其中復(fù)位中斷的優(yōu)先級是最高的;
優(yōu)先級次于復(fù)位中斷的是不可屏蔽中斷,當使能時,不可屏蔽中斷即發(fā)生。
接下來的是12個可屏蔽硬件中斷,這種類型的中斷需要滿足一定條件下才能發(fā)生。需要在全局中斷使能、不可屏蔽中斷使能、可屏蔽中斷使能、中斷標志寄存器相應(yīng)位置1且沒有更高級的中斷在執(zhí)行的前提下才能發(fā)生。
接下來看一下硬件原理圖,實驗過程中使用的是USER0和USER1,對應(yīng)接口名字分別是“GPIO0[6]和GPIO6[1]”。
以USER0為例,當按鍵按下時,GPIO0[6]為高電平,當按鍵松開時,GPIO0[6]為低電平。
基于StarterWare控制外設(shè)時可調(diào)用對應(yīng)的API接口,無需配置復(fù)雜的寄存器。GPIO管腳復(fù)用配置的函數(shù)源碼可以查看GPIO.c。
配置GPIO管腳方向的函數(shù)源碼和函數(shù)使用說明可以查看gpio.c。其中,第一個參數(shù)時GPIO的基地址,第二個參數(shù)是GPIO的編號,第三個參數(shù)設(shè)置GPIO的方向。
中斷使用流程分為7個步驟:
(2)使能DSP全局中斷。
(3)配置按鍵腳的中斷觸發(fā)類型。包括上升沿、下降沿、雙邊觸發(fā)三種觸發(fā)方式。
(4)使能按鍵管腳所在的BANK中斷。
(5)注冊中斷服務(wù)函數(shù)。注冊中斷服務(wù)函數(shù)是重點,這個函數(shù)決定了中斷之后要做什么。
(6)映射中斷到DSP的12個可屏蔽中斷。
(7)使能DSP的可屏蔽中斷。
中斷使用的部分函數(shù)源碼和函數(shù)使用說明可以查看interrupt.c。
部分的函數(shù)源碼和函數(shù)使用說明可以查看gpio.c。
以中斷觸發(fā)類型配置函數(shù)為例,函數(shù)源碼和函數(shù)使用說明可以查看gpio.c。其中,第一個參數(shù)是GPIO的基地址,第二個參數(shù)是GPIO的編號,第三個參數(shù)設(shè)置中斷類型。
配置GPIO輸出值的函數(shù)源碼和函數(shù)使用說明可以查看gpio.c。其中,第一個參數(shù)是GPIO的基地址,第二個參數(shù)是GPIO的編號,第三個參數(shù)設(shè)置GPIO的電平。
操作現(xiàn)象
導(dǎo)入工程
編譯工程
將CCS連接開發(fā)板并加載程序
點擊運行程序
查看現(xiàn)象,按下USER1按鍵,核心板兩個LED開始循環(huán)點亮。按下USER0按鍵,核心板個LED停止循環(huán)點亮。
-
led燈
+關(guān)注
關(guān)注
22文章
1596瀏覽量
109743 -
DSP控制
+關(guān)注
關(guān)注
0文章
12瀏覽量
10730 -
GPIO
+關(guān)注
關(guān)注
16文章
1280瀏覽量
54103 -
中斷控制器
+關(guān)注
關(guān)注
0文章
61瀏覽量
9674 -
按鍵中斷
+關(guān)注
關(guān)注
0文章
15瀏覽量
6535
發(fā)布評論請先 登錄
STM32F103實驗按鍵輸入與串口實驗
按鍵中斷控制LED跑馬燈實驗的相關(guān)資料分享
HarmonyOS Hi3861 GPIO操作 點燈和按鍵實驗

【嵌入式】按鍵中斷控制 LED 跑馬燈實驗

【嵌入式】按鍵中斷控制 LED 及蜂鳴器實驗

STM32F103-入門基礎(chǔ)實驗-GPIO輸入-按鍵(查詢/中斷)控制LED核心代碼(固件庫版)

簡單易懂的STM32外部中斷實現(xiàn)按鍵輸入判斷

STM32 按鍵輸入實驗

STM32基本GPIO操作:按鍵輸入(掃描+外部中斷)

STM32 HAL庫 CubeMX教程(四)按鍵外部中斷

STM32學(xué)習(xí)---中斷EXTI(按鍵中斷)

評論