7.4任务实践STM32F401RE :中断方式检测按键
任務內容:采用中斷方式檢測按鍵B1的狀態,按鍵按下后執行如下操作:翻轉指示燈LD2的狀態
硬件原理:按鍵B1由引腳PC13控制:按鍵按下時為下降沿觸發方式,釋放時為上升沿觸發方式。指示燈LD2由引腳PA5控制:PA5輸出高電平,開啟指示燈;PA5輸出低電平,關閉指示燈。
目錄
一,proteus 放置器件
1. 新建項目
2. 選擇器件
3. 開始連線
二,STM32cubeMX 進行工程文件的預配置
1. 新建工程文件選擇
2. 分析題意 設置引腳
3. 配置完成生成工程文件跳轉keil5
三,Keil 編寫具體實現代碼
1. 編寫實現的中斷函數
2. 開始仿真
一,proteus 放置器件
1. 新建項目
Next-----next----
兩次默認下一次即可
??選擇創建 firmware project
?????Cortex-M4
?????STM32F401RE
Finish 完成
2. 選擇器件
?我們需要 led燈 按鍵 電阻
搜索 ?LED-RED BUTTON RES ?雙擊添加
?
3. 開始連線
分析題意
引腳PC13 控制按鍵B1
引腳PA5 控制LD2
最終連接如下圖所示
3.1你可能會遇到的問題
1).如何放置器件?
點擊器件后 在點擊合適的位置兩下 即可放下 ?
線與線的連接 建議直線連接 可適當調整器件的位置
2).led燈選擇角度位置怎么調?
可以rotate 進行調整角度的問題
3).哪里找GND?
如下圖
?proteus器件接好了暫時不需要管這個了 ?開始進行代碼的編寫
二,STM32cubeMX 進行工程文件的預配置
1. 新建工程文件選擇
2. 分析題意 設置引腳
引腳PC13配置成中斷模式檢測按鍵B1(控制按鍵B1)按鍵按下時為下降沿觸發方式,釋放時為上升沿觸發方式
?
采用中斷方式檢測按鍵B1的狀態?需開啟中斷
引腳PA5 輸出高低電平 所以將PA5設置為輸出模式
??注意配置NVIC 因為我們使用了EXTI13
3. 配置完成生成工程文件跳轉keil5
?注意:要先命名
三,Keil 編寫具體實現代碼
1. 編寫實現的中斷函數
在這里的中斷 是說按鍵一旦檢測到中斷? 程序的pc指針 會跳到指定地址 執行我們預先設定好的代碼?
在main.c文件中
/* USER CODE BEGIN 4 */
/* USER CODE END 4 */
的位置添加代碼
/* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
????if(GPIO_Pin==GPIO_PIN_13)
{
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
}
}
/* USER CODE END 4 */
?
點擊ok這樣就可以進行編譯了
2. 開始仿真
雙擊板子 進入頁面 進入工程文件夾目錄 \MDK-ARM\10_23\10_23.hex
選擇 剛剛編譯生成的hex文件、
?點擊按鈕開始仿真
按下按鍵
?實驗成功
總結
以上是生活随笔為你收集整理的7.4任务实践STM32F401RE :中断方式检测按键的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 动态改变进度条,Andr
- 下一篇: 4月4日网站变灰色的效果是怎么实现的?