赞
踩
三相方波在电机驱动领域应用非常广泛,如下图所示,Ha,Hb,Hc分别为三路方波信号,每次只给三相电机的两相通电
为了便于区分,我们将最终需要的这三相PWM信号分别定义为Ha,Hb,Hc,即为上图的三路方波。
TIM1_CH1产生第1路PWM信号,即Ha;
TIM1_CH2产生第2路PWM信号作为触发信号,即Hb的触发信号;
TIM3_CH1产生第3路PWM信号,即Hb(该路信号被TIM1_CH2生成的信号所触发);
TIM3_CH2产生第4路PWM信号作为触发信号,即Hc的触发信号;
TIM4_CH1产生第5路PWM信号,即Hc(该路信号被TIM3_CH2生成的信号所触发);
TIM1_PWM_Init(3000-1,56-1); //168M/56 = 3M 频率 3M /3000 = 1K Hz
TIM3_PWM_Init(3000-1,28-1); //84M/28 = 3M
TIM3_IN_Config();
TIM_SetCompare1(TIM1,1500); //
TIM_SetCompare1(TIM3,1500); //
TIM4_PWM_Init(3000-1,28-1);
TIM_SetCompare1(TIM4,1500);
TIM4_IN_Config();
TIM1配置代码
//TIM1-CH1 PA8 //TIM1-OC2 void TIM1_PWM_Init(u32 arr,u32 psc) { /*结构体声明*/ GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; TIM_BDTRInitTypeDef TIM_BDTRStructure; /*时钟使能*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); /*IO复用*/ GPIO_PinAFConfig(GPIOA,GPIO_PinSource8,GPIO_AF_TIM1); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //PA.8 TIM1_CH1 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOA,&GPIO_InitStructure); TIM_TimeBaseStructure.TIM_Prescaler=psc; TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_Period=arr; TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure); TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_Pulse=0; TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High; TIM_OCInitStructure.TIM_OutputState
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。