STM32
直播中

徐冬蕾

7年用户 250经验值
私信 关注
[问答]

TIM4 CH4通道没有波形输出该怎么办?

void PWM_GPIO_Config(void)
{
    GPIO_InitTypeDef GPIO_InitStructure_tiM;//GPIO操作结构体
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    TIM_OCInitTypeDef  TIM_OCInitStructure ;
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |RCC_APB2Periph_AFIO, ENABLE);
    GPIO_InitStructure_TIM.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7| GPIO_Pin_8| GPIO_Pin_9;
GPIO_InitStructure_TIM.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_InitStructure_TIM.GPIO_Mode=GPIO_Mode_AF_PP;
    GPIO_Init(GPIOB, &GPIO_InitStructure_TIM);

TIM_DeInit(TIM4);//复位TIM4定时器
TIM_TimeBaseStructure.TIM_Period = 20000; //计数值20000---20ms cycle      
TIM_TimeBaseStructure.TIM_Prescaler = 72;//分频72     
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0; // 时钟分割   
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //计数方向向上计数
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
  
TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);
TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable);
TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable);
TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable);
TIM_OCStructInit(&TIM_OCInitStructure);
   
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse=1500;  //CH1
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
TIM_OC1Init(TIM4, &TIM_OCInitStructure);
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse=1500;  //CH2
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
TIM_OC2Init(TIM4, &TIM_OCInitStructure);
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse=1500;  //CH3
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
TIM_OC3Init(TIM4, &TIM_OCInitStructure);
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse=1500;  //CH4
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
TIM_OC4Init(TIM4, &TIM_OCInitStructure);  
TIM_Cmd(TIM4, ENABLE); //开启时钟   
}

回帖(7)

李建宁

2019-9-18 07:09:56
我不用库的.
建议你参考我们 的库函数版本的PWM实验.
举报

张彪其

2019-9-18 07:24:39
这么晚了还没睡啊,谢谢回复
举报

王秀华

2019-9-18 07:32:38
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

孙婧

2019-9-18 07:46:34
我试过其它定时器,都可以,就是TIM4的CH4不行其它三通道都可以的,不知为什么
举报

更多回帖

发帖
×
20
完善资料,
赚取积分