實驗原理
中斷:當外圍設備需要請求服務時,向CPU發(fā)出中斷請求,CPU響應外圍設備中斷,停止執(zhí)行當前程序,轉去執(zhí)行一個外圍設備服務的程序,此服務程序稱為中斷服務處理程序,或稱中斷服務子程序。中斷處理完畢,CPU又返回來執(zhí)行原來的程序。
中斷類型有圖中的幾種,其中復位中斷的優(yōu)先級是最高的;
優(yōu)先級次于復位中斷的是不可屏蔽中斷,當使能時,不可屏蔽中斷即發(fā)生。
接下來的是12個可屏蔽硬件中斷,這種類型的中斷需要滿足一定條件下才能發(fā)生。需要在全局中斷使能、不可屏蔽中斷使能、可屏蔽中斷使能、中斷標志寄存器相應位置1且沒有更高級的中斷在執(zhí)行的前提下才能發(fā)生。

接下來看一下硬件原理圖,實驗過程中使用的是USER0和USER1,對應接口名字分別是“GPIO0[6]和GPIO6[1]”。
以USER0為例,當按鍵按下時,GPIO0[6]為高電平,當按鍵松開時,GPIO0[6]為低電平。

基于StarterWare控制外設時可調用對應的API接口,無需配置復雜的寄存器。GPIO管腳復用配置的函數源碼可以查看GPIO.c。

配置GPIO管腳方向的函數源碼和函數使用說明可以查看gpio.c。其中,第一個參數時GPIO的基地址,第二個參數是GPIO的編號,第三個參數設置GPIO的方向。

中斷使用流程分為7個步驟:
(2)使能DSP全局中斷。
(3)配置按鍵腳的中斷觸發(fā)類型。包括上升沿、下降沿、雙邊觸發(fā)三種觸發(fā)方式。
(4)使能按鍵管腳所在的BANK中斷。
(5)注冊中斷服務函數。注冊中斷服務函數是重點,這個函數決定了中斷之后要做什么。
(6)映射中斷到DSP的12個可屏蔽中斷。
(7)使能DSP的可屏蔽中斷。

中斷使用的部分函數源碼和函數使用說明可以查看interrupt.c。

部分的函數源碼和函數使用說明可以查看gpio.c。

以中斷觸發(fā)類型配置函數為例,函數源碼和函數使用說明可以查看gpio.c。其中,第一個參數是GPIO的基地址,第二個參數是GPIO的編號,第三個參數設置中斷類型。

配置GPIO輸出值的函數源碼和函數使用說明可以查看gpio.c。其中,第一個參數是GPIO的基地址,第二個參數是GPIO的編號,第三個參數設置GPIO的電平。

操作現象
導入工程
編譯工程
將CCS連接開發(fā)板并加載程序
點擊運行程序
查看現象,按下USER1按鍵,核心板兩個LED開始循環(huán)點亮。按下USER0按鍵,核心板個LED停止循環(huán)點亮。
-
led燈
+關注
關注
22文章
1606瀏覽量
111856 -
DSP控制
+關注
關注
0文章
12瀏覽量
10814 -
GPIO
+關注
關注
16文章
1328瀏覽量
56222 -
中斷控制器
+關注
關注
0文章
63瀏覽量
9819 -
按鍵中斷
+關注
關注
0文章
15瀏覽量
6607
發(fā)布評論請先 登錄
STM32F103實驗按鍵輸入與串口實驗
HarmonyOS Hi3861 GPIO操作 點燈和按鍵實驗
STM32F103-入門基礎實驗-GPIO輸入-按鍵(查詢/中斷)控制LED核心代碼(固件庫版)
STM32 按鍵輸入實驗
STM32基本GPIO操作:按鍵輸入(掃描+外部中斷)
STM32 HAL庫 CubeMX教程(四)按鍵外部中斷
STM32學習---中斷EXTI(按鍵中斷)
DSP操作教程:按鍵中斷輸入實驗
評論