stm32关于带死区时间的互补PWM输出

本文介绍了STM32F103ZET6如何利用TIM1和TIM8输出带死区时间的互补PWM波形,适用于半桥和全桥电路控制。详细阐述了互补PWM输出的简介及配置代码,强调通过MCU内部高级定时器即可实现,无需额外硬件电路。
摘要由CSDN通过智能技术生成

1.互补PWM输出简介

  • 在使用stm32输出PWM波形时,笔者所用的stm32f103zet6中的高级定时器TIM1和TIM8可以输出互补的PWM波形,使用互补的PWM波常见与一些半桥电路和全桥电路控制中,使用MCU自带的高级时钟可以简便的解决互补PWM输出问题。
    笔者在控制半桥电路中应用了MCU自带的TIM1时钟CH_1和CH_1N的输出带死区时间的互补PWM波形,输出稳定。

2.互补PWM波输出设置

/**
 * @brief 	互补的PWM输出初始化.
 * @param  	arr:计数总数;
			psc:预分频;
			ccr1_val:计数ccr1后翻转电平;
			deadtime:死区时间.
 * @retval 	None.
 * @msg	   	PWM输出频率为72MHz/(arr+1)*(psc+1)此处设置PWM频率为100KHz;
			死区时间设置为16*1/72us=222.2ns(0x10).
 */
void TIM1_PWM1_DeadtimeInit(u16 arr,u16 psc,u16 CCRx_val,u16 deadtime)
{
   
    GPIO_InitTypeDef GPIO_InitSturcture;
    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
    TIM_OCInitTypeDef TIM_OCInitStructure;
    TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE);

    GPIO_InitSturcture.GPIO_Pin = GPIO_Pin_8 ;
    GPIO_InitSturcture.GPIO_Mode = GPIO_Mode_AF_PP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值