//??×?????????
void TIM2_PWM_Init(u16 arr , u16 psc )
{
GPIO_InitTypeDef GPIO_InitStructure ;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure ;
TIM_OCInitTypeDef TIM_OCInitStructure ;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE );
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE );
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
GPIO_Init(GPIOA , &GPIO_InitStructure);
// ??????TIM2 ur
TIM_TimeBaseStructure.TIM_Period = arr ;
TIM_TimeBaseStructure.TIM_Prescaler = psc ;
TIM_TimeBaseStructure.TIM_ClockDivision = 0 ;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit (TIM2 , &TIM_TimeBaseStructure );
//??????TIM2 Channel2 PWM ????
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High ;
TIM_OC2Init(TIM2 , &TIM_OCInitStructure );
TIM_OC2PreloadConfig (TIM2 ,TIM_OCPreload_Enable );
TIM_Cmd (TIM2 , ENABLE );
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
TIM_OC2PreloadConfig (TIM2 ,TIM_OCPreload_Enable );
改成
TIM_OC3Init(TIM2 , &TIM_OCInitStructure );
TIM_OC3PreloadConfig (TIM2 ,TIM_OCPreload_Enable );
然后设置
TIM_SetCompare3(TIM2, pwm_value);
一周热门 更多>