> 文档中心 > STM32G474 定时器通过抖动技术实现高分辨率PWM输出方法(提高16倍)

STM32G474 定时器通过抖动技术实现高分辨率PWM输出方法(提高16倍)

文章目录

  • 一.数字脉宽调制(DPWM)介绍
  • 二.基于NUCLEO-G474RE开发板新建工程
    • 2.1 打开 STM32CubeMX 软件,新建工程.
    • 2.2 选择开发板(芯片)
    • 2.3 配置TIM1
    • 2.4配置一下时钟树.
    • 2.5生成代码.
  • 三.编写代码
  • 四.输出结果
  • 五.总结

一.数字脉宽调制(DPWM)介绍

如今,电力开关电子学表现出显著的性能提高。电力开关电子器件的开关频率不断提高,以满足现代电力转换系统的要求。在控制技术方面,这变得越来越具有挑战性。对于数控脉宽调制发生器,在开关频率和占空比微调之间有一个权衡。同时实现高分辨率和高开关频率意味着控制电路工作在高频率。

二.基于NUCLEO-G474RE开发板新建工程

2.1 打开 STM32CubeMX 软件,新建工程.

我这里选择的是我的开发板
我手里有开发板所以选择基于开发板。

2.2 选择开发板(芯片)

我这里选择的是我的开发板NUCLEO-G474RE,少去一些步骤。
在这里插入图片描述

2.3 配置TIM1

配置TIM1产生100kHz的互补PWM.
F= Tclk/[(psc+1) * (cnt+1)] = 170MHz/[1*1700] = 100kHz。
普通情况下一个周期记1700个数
在抖动模式下,这里将记1700x16=27200;
在这里插入图片描述

2.4配置一下时钟树.

在这里插入图片描述

2.5生成代码.

在这里插入图片描述

大功告成

三.编写代码

/* USER CODE BEGIN 2 *///启动定时TIM1  HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);  HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);  /* USER CODE END 2 */  
  while (1)  {    /* USER CODE END WHILE */    /* USER CODE BEGIN 3 */  HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);//LED  HAL_Delay(500);  TIM1->CCR1=13600;//占空比50%  }  /* USER CODE END 3 */

调试一下,看看对不
在这里插入图片描述

四.输出结果

在这里插入图片描述
经过测量达到预期结果
输出100kHz互补PWM,占空比50%。

五.总结

有不对的地方请大家包涵,还望大家提醒,第一次写,有什么建议或问题欢迎评论下留言。

医疗百科