STM32CubeMX PWM

一、PWM简介

        脉宽调制 (PWM) 是一种从数字输出输出模拟值的技术。普通的 GPIO 输出只能输出高电平或低电平。因此,只能通过使用时间来生成模拟值。使用 PWM,引脚交替打开和关闭,以便平均输出电压介于高电压和低电压之间。

       占空比和 PWM 频率对我们来说是最重要的参数。接通时间占该周期时间的比例称为占空比。例如,20% 的占空比意味着信号在 20% 的时间内开启,在 80% 的时间内关闭。 PWM 频率指定信号的时间周期。

频率 =定时器时钟  / (psc+1) / (arr+1) (单位:Hz)
arr 是计数器值
psc 是预分频值
占空比:
duty circle = TIM3->CCR1 / arr(单位:%)
TIM3->CCR1  用户设定值

TIM3->CCR1 = dutyCycle
和__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, dutyCycle);作用相同

HAL_TIM_PWM_Start//PWM启动函数
HAL_TIM_PWM_Stop//PWM停止函数
_HAL_TIM_SET_COMPARE//占空比
_HAL_TIM_SET_AUTORELOAD//周期

二、CubeMX配置

打开仿真调试

时钟源 

 选择频率

 使能板载LED PC13引脚

定时器配置

生成工程

 

在代码中只需要在main函数调用

main.c

  /* USER CODE BEGIN 2 */
	
    HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_2);
	
  /* USER CODE END 2 */

添加小灯观察板子是否工作

/* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		
		HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
		HAL_Delay(100);
    /* USER CODE END WHILE */

 运行结果