cubemx万年钟_一知半解学CubeMX——TIM:定时中断实现LED闪烁
一知半解學(xué)習(xí)環(huán)境:
1、CubeMX 4.23.0
2、uVision 5.14.2
3、MCU 啟明 STM32F407 開發(fā)板(高配版) V3.1
一知半解學(xué)習(xí)目標(biāo):
1、掌握CubeMX下RCC以及SYS的相關(guān)配置;
2、掌握CubeMX下GPIO的相關(guān)配置;
3、掌握CubeMX下定時(shí)器常規(guī)中斷的配置;
一知半解實(shí)現(xiàn)過程:
1、配置系統(tǒng)調(diào)試接口及時(shí)基時(shí)鐘源;
2、配置外部高速時(shí)鐘源(HSE);
3、配置定時(shí)器參數(shù)(TIM1);
4、根據(jù)原理圖配置相應(yīng)GPIO引腳并修改宏定義名稱;
5、配置時(shí)鐘樹,主頻168M;
6、配置管腳默認(rèn)輸出狀態(tài)及速率;
7、配置定時(shí)器預(yù)分頻及裝載值,開啟定時(shí)器中斷;
由于此處選擇的是定時(shí)器1(TIM1),該定時(shí)器掛載在APB2總線上,因此TIM1時(shí)鐘為168M。為了使LED間隔0.5S翻轉(zhuǎn),需要配置TIM1的中斷時(shí)間為0.5S,為了方便計(jì)算預(yù)分頻值定為 16800-1,裝載值為5000-1; ((168M/16800)/5000) = 2Hz,即周期為0.5S。
8、生成工程,并添加相關(guān)程序;
首先,main.c程序中添加(放置于定時(shí)器配置之后)開啟 TIM1計(jì)時(shí)中斷;
/* USER CODE BEGIN 2 */
/*使能定時(shí)器1中斷*/
HAL_TIM_Base_Start_IT(&htim1);
/* USER CODE END 2 */
其次,在 tim.c文件中添加定時(shí)器中斷完成回調(diào)函數(shù);
/* 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配置的常規(guī)套路,如SYS、RCC以及時(shí)鐘樹的配置等;
2、掌握TIM中斷開啟函數(shù)的使用;
3、掌握定時(shí)器中斷回調(diào)函數(shù)的使用;
總結(jié)
以上是生活随笔為你收集整理的cubemx万年钟_一知半解学CubeMX——TIM:定时中断实现LED闪烁的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟机局域网拓扑图_Hyper-V虚拟机
- 下一篇: 带你全面掌握高级知识点!java如何实现