STM32CUBEIDE-F407(8)-输出多路互补带死区PWM(适用于T型三电平)

本文详细介绍了如何通过STM32CUBEIDE配置STM32F407的TIM1和TIM8生成互补PWM波,用于驱动T型三电平逆变器,包括设置开关频率、中心对齐模式和使用中断回调调整占空比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

本章通过STM32CUBEIDE配置STM32F407的定时器TIM1与TIM8输出多路PWM

原理

T型三电平逆变器相较于其他的逆变器,其具有12个开关管 ,即需要6路互补且带死区的PWM波,实现逆变。

STM32F407具有两个高级定时器,即TIM1与TIM8,两个均可实现输出互补带死区的PWM波,即IDE操作如下

IDE操作

本次设计的开关频率为10kHz,采用的为中心对齐模式1

开关频率计算为定时器时钟/(arr+1)*(psc+1)*2

 

TIM8配置与之相同

在main.c文件中进行操作

  HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
  HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);
  HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
  HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_2);
  HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3);
  HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_3);

  HAL_TIM_PWM_Start(&htim8, TIM_CHANNEL_1);
  HAL_TIMEx_PWMN_Start(&htim8, TIM_CHANNEL_1);
  HAL_TIM_PWM_Start(&htim8, TIM_CHANNEL_2);
  HAL_TIMEx_PWMN_Start(&htim8, TIM_CHANNEL_2);
  HAL_TIM_PWM_Start(&htim8, TIM_CHANNEL_3);
  HAL_TIMEx_PWMN_Start(&htim8, TIM_CHANNEL_3);

通常我会把占空比赋值程序写进中断回调函数里

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    if(htim == (&htim1))
    {

    TIM1->CCR1=800;
    TIM8->CCR2=800;

    TIM1->CCR3=800;
    TIM8->CCR1=800;

    TIM1->CCR2=800;
    TIM8->CCR3=800;
     }
}

其每一路互补PWM波形如下图所示

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值