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

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

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

Github

https://github.com/HaHaHaHaHaGe/Planof2019_half/tree/master/Course_Project/STM32H7/Class03_PWM

功能簡述

主模式TIM3的開啟兩路PWM對映到PB0、PB1

STM32CubeMX配置

STM32CubeMX版本:4.27.0
配置流程:
Pinout介面選擇並開啟需要的LED控制引腳
Clock Configuration配置時鐘樹
Configuration介面配置System
生成工程

Pinout配置

在這裡插入圖片描述
LED輸出PIN配置TIM3的基本配置

Clock Configuration配置

在這裡插入圖片描述
開啟系統時鐘,TIM3時鐘(APB1)

Configuration

在這裡插入圖片描述
左側主要系統功能的開啟,或中間軟體層功能的開啟(如:RTOS、JPEG解碼器,檔案系統等)
右側是系統及外設模組的具體配置

GPIO

在這裡插入圖片描述

TIM3

在這裡插入圖片描述
週期=((1+TIM_Prescaler )/時鐘)*(1+TIM_Period )
分頻:0
計數模式:向上計數
重灌值:65535
時鐘分割:0 (數字濾波器相關)
自動重灌:開啟
MSM:關閉(開啟將在該定時器使能的同時TRGO發出訊號)

Mode:PWM1模式(PWM的模式選擇)
Pulse:32768(佔空比)
Fast Mode:Disable (開啟快速比較模式)
CH Polarity:Low (選擇有效電平)

程式碼部分

main.c

  /* USER CODE BEGIN 1 */
	unsigned int i =0,j=65535
,k=65535; char flagi = 0,flagj = 0; /* USER CODE END 1 */ /* USER CODE BEGIN 2 */ HAL_TIM_PWM_Start_IT(&htim3,TIM_CHANNEL_4); HAL_TIM_PWM_Start_IT(&htim3,TIM_CHANNEL_3); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ if(i == 0)flagi = 1; if(j == 0)flagj = 1; if(i == 65535)flagi = 0; if(j == 65535)flagj = 0; if(flagi)htim3.Instance->CCR3=i++; else htim3.Instance->CCR3=i--; if(flagj)htim3.Instance->CCR4=j++; else htim3.Instance->CCR4=j--; k=655; while(k--); //HAL_Delay(1); } /* USER CODE END 3 */

備註

通用定時器的多種用法在RM0433 第39章