日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cubemx万年钟_一知半解学CubeMX——TIM:定时中断实现LED闪烁

發布時間:2024/1/1 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cubemx万年钟_一知半解学CubeMX——TIM:定时中断实现LED闪烁 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一知半解學習環境:

1、CubeMX 4.23.0

2、uVision 5.14.2

3、MCU 啟明 STM32F407 開發板(高配版) V3.1

一知半解學習目標:

1、掌握CubeMX下RCC以及SYS的相關配置;

2、掌握CubeMX下GPIO的相關配置;

3、掌握CubeMX下定時器常規中斷的配置;

一知半解實現過程:

1、配置系統調試接口及時基時鐘源;

2、配置外部高速時鐘源(HSE);

3、配置定時器參數(TIM1);

4、根據原理圖配置相應GPIO引腳并修改宏定義名稱;

5、配置時鐘樹,主頻168M;

6、配置管腳默認輸出狀態及速率;

7、配置定時器預分頻及裝載值,開啟定時器中斷;

由于此處選擇的是定時器1(TIM1),該定時器掛載在APB2總線上,因此TIM1時鐘為168M。為了使LED間隔0.5S翻轉,需要配置TIM1的中斷時間為0.5S,為了方便計算預分頻值定為 16800-1,裝載值為5000-1; ((168M/16800)/5000) = 2Hz,即周期為0.5S。

8、生成工程,并添加相關程序;

首先,main.c程序中添加(放置于定時器配置之后)開啟 TIM1計時中斷;

/* USER CODE BEGIN 2 */

/*使能定時器1中斷*/

HAL_TIM_Base_Start_IT(&htim1);

/* USER CODE END 2 */

其次,在 tim.c文件中添加定時器中斷完成回調函數;

/* USER CODE BEGIN 1 */

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){

if (htim->Instance == TIM1){

/* Toggle LED */

HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);

HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);

HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);

}

}

/* USER CODE END 1 */

一知半解套路回顧:

1、掌握CubeMX配置的常規套路,如SYS、RCC以及時鐘樹的配置等;

2、掌握TIM中斷開啟函數的使用;

3、掌握定時器中斷回調函數的使用;

總結

以上是生活随笔為你收集整理的cubemx万年钟_一知半解学CubeMX——TIM:定时中断实现LED闪烁的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。