STM32CubeMX學習筆記——STM32H743通用定時器
阿新 • • 發佈:2018-11-17
STM32CubeMX學習筆記——STM32H743通用定時器
Github
https://github.com/HaHaHaHaHaGe/Planof2019_half/tree/master/Course_Project/STM32H7/Class03_TIMER
功能簡述
主模式TIM2的中斷作為從模式TIM3的時鐘輸入
(級聯定時器)
紅燈亮6滅5 頻率1hz
綠燈亮3滅3 頻率0.5hz
STM32CubeMX配置
STM32CubeMX版本:4.27.0
配置流程:
Pinout介面選擇並開啟需要的LED控制引腳
Clock Configuration配置時鐘樹
Configuration介面配置System
生成工程
Pinout配置
LED輸出PIN配置,TIM2,TIM3的基本配置
Clock Configuration配置
開啟系統時鐘,設定TIM2、TIM3時鐘(APB1)
Configuration
左側主要系統功能的開啟,或中間軟體層功能的開啟(如:RTOS、JPEG解碼器,檔案系統等)
右側是系統及外設模組的具體配置
GPIO
輸出配置
TIM3
週期=((1+TIM_Prescaler )/時鐘)*(1+TIM_Period )
分頻:62499
計數模式:向上計數
重灌值:99
時鐘分割:0 (數字濾波器相關)
自動重灌:開啟
MSM:關閉(開啟將在該定時器使能的同時TRGO發出訊號)
觸發事件選擇:更新
TIM2
週期=((1+TIM_Prescaler )/時鐘)*(1+TIM_Period )
分頻:0
計數模式:向上計數
重灌值:1
時鐘分割:0 (數字濾波器相關)
自動重灌:開啟
由於TIM2作為從定時器,它的時鐘實際是TIM3的中斷訊號
NVIC
程式碼部分
main.c
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start_IT(&htim3);
HAL_TIM_Base_Start_IT(&htim2);
/* USER CODE END 2 */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_Delay(10000);
HAL_TIM_Base_DeInit(&htim3);
}
/* USER CODE END 3 */
stm32h7xx_it.h
/* USER CODE BEGIN 1 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance == TIM2)
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);
if(htim->Instance == TIM3)
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
}
/* USER CODE END 1 */
備註
通用定時器的多種用法在RM0433 第39章