使用TIM3_CH1 PB4复用输出PWM,可是实现不了

2019-08-13 19:34发布

      有没有使用战舰板的盆友遇到类似的问题,使用TIM3_CH1 PB4复用输出PWM,可是实现不了。
      代码是根据原子哥的更改的,理论上应该可以的,PB5完美输出,但是PA6部分重映射PB4怎么也不能输出,改了好多遍了,论坛上有类似的问题但是似乎并没有解决,所以再发一次,大神给我指点秘境吧。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
凡may
2019-08-14 08:09

void TIM3_PWM_Init(u16 arr,u16 psc)

GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
TIM_OCInitTypeDef  TIM_OCInitStructure;
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,DISABLE);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB  | RCC_APB2Periph_AFIO, ENABLE); 

GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);  
 
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_4; //TIM_CH2
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
 
TIM_TimeBaseStructure.TIM_Period = arr; 
TIM_TimeBaseStructure.TIM_Prescaler =psc; 
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);?

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; 
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC2Init(TIM3, &TIM_OCInitStructure);

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; 
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High
TIM_OC1Init(TIM3, &TIM_OCInitStructure);  

TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
 TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable); 
 
TIM_Cmd(TIM3, ENABLE);

}
主函数里面有这两句
TIM_SetCompare2(TIM3,led0pwmval);
TIM_SetCompare1(TIM3,led0pwmval);
应该没问题的吧,但是PB4没有输出PWM

一周热门 更多>