求助各位大侠 本人在用TIM1定时器实现互补PWM输出时,需要CH1通道产生PWM波形,互补通道CH1N 一直是高电平。 现在的问题是CH1通道能产生想要的PWM波形,可互补通道CH1N 一直是低电平,这里该怎么配置让它是高电平呢?求指点,非常感谢! 见如下图片?红色是我希望的波形,实际上是下面的波形。 程序设置 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; TIM_OCInitStructure.TIM_Pulse = CCR1_Val ; //ÉèÖÃÕ¼¿Õ±È TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCPolarity_High; TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset; 这个是PWM设置,在通信事件触发的情况下, 配置: TIM_SelectOCxM(TIM1, TIM_Channel_1, TIM_OCMode_PWM1); TIM_CCxCmd(TIM1, TIM_Channel_1, TIM_CCx_Enable); TIM_CCxNCmd(TIM1,TIM_Channel_1, TIM_CCxN_Disable); |
RE:STM32 用TIM1 产生互补PWM的问题?
回复:STM32 用TIM1 产生互补PWM的问题?
强制拉高 或者拉低,函数库里有这个函数
真要是这么容易,我就不送200个积分咯,呵呵
在PWM产生方式下,是不能强制高或这低的,要不然CH1不能产生PWM波形了。只能时能或这禁能一个通道。我现在的问题是,怎么能在禁能的方式下,不是默认的低电平,而是产生高电平
RE:STM32 用TIM1 产生互补PWM的问题?
RE:STM32 用TIM1 产生互补PWM的问题?
管理员,在吗?求解答!多谢啊
RE:STM32 用TIM1 产生互补PWM的问题?
这样不行?
RE:STM32 用TIM1 产生互补PWM的问题?
回复:STM32 用TIM1 产生互补PWM的问题?
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High; //互补输出高电平有效
这样不行?
是的,我就是这么配置的,如果不是PWM模式,是可以强制高或者强制低的
回复:STM32 用TIM1 产生互补PWM的问题?
既然互不通道没有使用,不要把互补通道对应的引脚设置为复用模式GPIO_Mode_AF_PP,设置成通用输出模式不就行了,再用函数控制.
互补通道是使用的,CH1输出PWM,CH1N要输出有效或无效电平的。
回复:STM32 用TIM1 产生互补PWM的问题?
看看这个帖子