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闪烁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟机局域网拓扑图_Hyper-V虚拟机
- 下一篇: 带你全面掌握高级知识点!java如何实现