GONGO 发表于 2013-8-12 09:41 
你试一下,TIM_CH1 用 PWM1方式,TIM_CH2 用 PWM2 方式。可以得到你要的波形的。 ...
/* Time 定时基础设置*/
TIM_TimeBaseStructure.TIM_Prescaler = 0;//不分频
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_CenterAligned1; //TIM_CounterMode_Up/TIM_CounterMode_Down/TIM_CounterMode_CenterAligned1
//TIM_CounterMode_CenterAligned2/TIM_CounterMode_CenterAligned3
TIM_TimeBaseStructure.TIM_Period = (SystemCoreClock / Frequency ) - 2;//PWM頻率
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;//
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
/* 频道1,2的PWM 模式设置 */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;//
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;//
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;//
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
TIM_OCInitStructure.TIM_Pulse = ((SystemCoreClock / Frequency ))/ 200 * Pulse;//PWM脉宽
TIM_OC1Init(TIM1, &TIM_OCInitStructure);
TIM_OC2Init(TIM1, &TIM_OCInitStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;//
TIM_OC3Init(TIM1, &TIM_OCInitStructure);
TIM_OC4Init(TIM1, &TIM_OCInitStructure);
/* TIM1 计算器使能*/
TIM_Cmd(TIM1, ENABLE);
/* TIM1 主输出使能 */
TIM_CtrlPWMOutputs(TIM1, ENABLE);
按上面的设置还是不行。就算这样可行的话,那怎样设置两个通道的相位关系值?哪个参数决定相位?
|