STM32用TIM1产生互补PWM,怎么配置让它是高电平

2019-07-14 14:28发布

求助各位大侠
      本人在用tiM1定时器实现互补PWM输出时,需要CH1通道产生PWM波形,互补通道CH1N 一直是高电平。
      现在的问题是CH1通道能产生想要的PWM波形,可互补通道CH1N 一直是低电平,这里该怎么配置让它是高电平呢?求指点,非常感谢!
      见如下图片?红 {MOD}是我希望的波形,实际上是下面的波形。
   
     程序设置
         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);
      
      
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
maruidiyi
1楼-- · 2019-07-15 10:15
回复第 7 楼 于2014-04-01 20:04:03发表:
既然互不通道没有使用,不要把互补通道对应的引脚设置为复用模式GPIO_Mode_AF_PP,设置成通用输出模式不就行了,再用函数控制.
 

互补通道是使用的,CH1输出PWM,CH1N要输出有效或无效电平的。
guanrui1202
2楼-- · 2019-07-15 15:13
TIM_CCxNCmd((TIM1, TIM_Channel_1, TIM_CCxN_Disable)不是已经使互补输出失能了吗?
wdc596933938
3楼-- · 2019-07-15 19:58
请问下楼主你有解决这个问题吗,如有解决能否将程序发下啊
leilijiao
4楼-- · 2019-07-15 22:41
楼主,你好,你的问题有没有解决,可否指导分享下解决办法哦,谢谢
一根玉米须
5楼-- · 2019-07-16 04:07
 精彩回答 2  元偷偷看……

一周热门 更多>