想通过配置 stm32 的 TIM1 输出1ms 5个的 200KHz 的互补PWM,希望两路互补PWM空闲时均为低电平。
方法为在TIM更新中断函数中通过全局变量自加到5,改变 CCxE CCxEN 来控制PWM的开关。结果发现两路空闲时均为高电平。
1.尝试过 TIM_SelectOCxM(TIM1, TIM_Channel_2, TIM_ForcedAction_InActive) 和 TIM_ForcedOC2Config(TIM1, TIM_ForcedAction_InActive),发现只能对互补路有效果,另外一路不论在pwm工作或空闲都一直保持高电平没有pwm。
2.修改OSSR OSSI OCPolarity IdelState等均无效果,两路空闲时依旧是高电平。
3.采用重复计数器关闭TIM计数器的方式,两路互补电平为一高一低
调了好多天了依然不出效果,很急,有没有前辈有类似经验啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
是的,我的需求就是在关闭定时器后,是固定的低电平,(因为我是隔一段时间发几个脉冲),昨天试了一下,改成IO模式,也就是(GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //复用功能)改成输出模式,然后确实可以拉低,但是再改成复用模式后,就没有PWM产生了;
一周热门 更多>