(3)STM32使用HAL庫操作外部中斷——實戰操作


有了上一篇的基礎入門知識,使用Cube創建一個簡單的外部中斷就容易多了。


一、Cube配置

需求:使用PD10作為外部中斷(下降沿觸發)控制LED(PD12-PD14) 

1.選型

STM32-F4-Discovery使用的是F407VGT6.

2.使能時鍾

3.設置GPIO

PD12-PD15對應4個LED,設置為輸出

使用PD10作為外部中斷,於是PD10設置為GPIO_EXIT10

4.根據F4-Discovery硬件配置時鍾

外部8MHz晶振,系統頻率設置168(最大只能設置168,這個可隨便設置)

5.配置

5.1首先配置GPIO的PD10(外部中斷輸入)

5.2配置GPIO的PD12-PD15

5.3配置NVIC

由於只有這一個中斷,所有優先級都設置為0

6.最后生成工程就行了。

二、Keil程序

需求:外部中斷觸發,改變四個LED的狀態。

再說一遍中斷執行順序

(1)PD10的中斷服務函數

(2)中斷服務函數原型

(3)中斷處理函數

(4)回調函數(用戶在main.c中重寫)

 

while(1)就不要動了,目前用不到。

編譯,下載,齊活。

 

 最后再補充一點,中斷初始化的問題,在mian.c的main()函數中只有下面幾個初始化函數:

 

那么中斷的初始化去哪了呢?

其實,中斷初始化的代碼被放置到GPIO初始化函數MX_GPIO_Init(void)里了:

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM