void TIM5_PWM_Init(u16 arr,u16 psc){//无端口重映射
GPIO_InitTypeDef GPIO_InitTypeStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitTypeStructure;
TIM_OCInitTypeDef TIM_OCInitTypeStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE);//使能定时器3时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);//使能AFIO和C的时钟
//GPIO_PinRemapConfig(GPIO_Remap_TIM4,ENABLE);
GPIO_InitTypeStructure.GPIO_Mode = GPIO_Mode_AF_PP;//初始化为推挽输出
GPIO_InitTypeStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitTypeStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitTypeStructure);
TIM_TimeBaseInitTypeStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInitTypeStructure.TIM_Period = arr;
TIM_TimeBaseInitTypeStructure.TIM_Prescaler = psc ;
TIM_TimeBaseInitTypeStructure.TIM_ClockDivision = 0;
TIM_TimeBaseInit(TIM5,&TIM_TimeBaseInitTypeStructure);
TIM_OCInitTypeStructure.TIM_OCMode = TIM_OCMode_PWM2;
TIM_OCInitTypeStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OCInitTypeStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OC2Init(TIM5,&TIM_OCInitTypeStructure);
TIM_OC2PreloadConfig(TIM5,TIM_OCPreload_Enable);
TIM_Cmd(TIM5,ENABLE);
}仅将TIM4改为TIM5就可以用了,TIM4无法输出PWM波