1. 程式人生 > >STM32CubeMX學習筆記——STM32H743通用定時器

STM32CubeMX學習筆記——STM32H743通用定時器

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章