## 描述
按下按鈕亮,松開滅,通過外部中斷
## proteus設置
選用芯片stm32f103,設置好電氣網絡
按照如圖所示連線(想要怎么連都可以)
1.png (42.7 KB, 下載次數: 50)
下載附件
2021-7-12 22:43 上傳
## CuBEIDE配置
配置引腳,PB15EXTI,PB13輸出
2.png (88.6 KB, 下載次數: 62)
下載附件
2021-7-12 22:43 上傳
不要忘了開啟中斷,設置優先級,優先級隨便點點,只有一個按鈕,“Preemption Priority”一般越小優先級越高
3.png (148.28 KB, 下載次數: 59)
下載附件
2021-7-12 22:43 上傳
接下來保存生成代碼
會有GPIO的初始化,GPIO的初始化包在此不再進行進一步解釋,都是通過函數庫來進行寄存器配置,看看開發文檔就可以理解了
4.png (173.08 KB, 下載次數: 57)
下載附件
2021-7-12 22:43 上傳
接下來重點介紹的是外部中斷,可以在以下界面來看屬于的引腳所對應的EXTI寄存器對應的值,不過IDE已經幫我們配置好了,我們只需要在設置優先級即可(剛已經設置過了)
5.png (179.29 KB, 下載次數: 49)
下載附件
2021-7-12 22:43 上傳
## 代碼編寫
由于我們是對GPIO口進行外部中斷,所以理所當然,中斷回調函數放在GPIO的驅動中,
6.png (215.18 KB, 下載次數: 57)
下載附件
2021-7-12 22:43 上傳
我們在主程序里重寫該函數,flag為main.c里的全局變量
7.png (209.61 KB, 下載次數: 51)
下載附件
2021-7-12 22:43 上傳
再在主程序里添加一下代碼
8.png (206.18 KB, 下載次數: 59)
下載附件
2021-7-12 22:43 上傳
## 實驗效果
9.gif (84.85 KB, 下載次數: 58)
下載附件
2021-7-12 22:43 上傳
|