STM32CubeMX學習筆記——STM32H743通用定時器
- Github
- 功能簡述
- STM32CubeMX配置
-
- Pinout配置
- Clock Configuration配置
- Configuration
-
- GPIO
- TIM3
- TIM2
- NVIC
- 代碼部分
-
- main.c
- stm32h7xx_it.c
- 備注
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.c
/* 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章