你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 用TIM1 产生互补PWM的问题?

[复制链接]
fengye5340 提问时间:2014-3-28 17:34 /
求助各位大侠
      本人在用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);
      11.JPG
      
收藏 评论12 发布时间:2014-3-28 17:34

举报

12个回答
青檬 回答时间:2014-3-31 15:51:26

RE:STM32 用TIM1 产生互补PWM的问题?

强制拉高 或者拉低,函数库里有这个函数
fengye5340 回答时间:2014-3-31 19:21:05

回复:STM32 用TIM1 产生互补PWM的问题?

回复第 2 楼 于2014-03-31 15:51:26发表:
强制拉高 或者拉低,函数库里有这个函数 

真要是这么容易,我就不送200个积分咯,呵呵
 
在PWM产生方式下,是不能强制高或这低的,要不然CH1不能产生PWM波形了。只能时能或这禁能一个通道。我现在的问题是,怎么能在禁能的方式下,不是默认的低电平,而是产生高电平
 
fengye5340 回答时间:2014-3-31 19:21:36

RE:STM32 用TIM1 产生互补PWM的问题?

顶起来,急求解决,谢谢啦
fengye5340 回答时间:2014-3-31 20:48:43

RE:STM32 用TIM1 产生互补PWM的问题?

@安
管理员,在吗?求解答!多谢啊
灰小子-1888763 回答时间:2014-3-31 22:46:35

RE:STM32 用TIM1 产生互补PWM的问题?

TIM_OCInitStructure.TIM_OCNPolarity  = TIM_OCNPolarity_High;    //互补输出高电平有效
这样不行?
pythonworld 回答时间:2014-4-1 20:04:03

RE:STM32 用TIM1 产生互补PWM的问题?

既然互不通道没有使用,不要把互补通道对应的引脚设置为复用模式GPIO_Mode_AF_PP,设置成通用输出模式不就行了,再用函数控制.
fengye5340 回答时间:2014-4-1 20:12:05

回复:STM32 用TIM1 产生互补PWM的问题?

回复第 6 楼 于2014-03-31 22:46:35发表:
TIM_OCInitStructure.TIM_OCNPolarity  = TIM_OCNPolarity_High;    //互补输出高电平有效
这样不行? 

是的,我就是这么配置的,如果不是PWM模式,是可以强制高或者强制低的
fengye5340 回答时间:2014-4-1 20:13:58

回复:STM32 用TIM1 产生互补PWM的问题?

回复第 7 楼 于2014-04-01 20:04:03发表:
既然互不通道没有使用,不要把互补通道对应的引脚设置为复用模式GPIO_Mode_AF_PP,设置成通用输出模式不就行了,再用函数控制.
 

互补通道是使用的,CH1输出PWM,CH1N要输出有效或无效电平的。
pythonworld 回答时间:2014-4-2 12:43:12

回复:STM32 用TIM1 产生互补PWM的问题?

TIM_CCxNCmd((TIM1, TIM_Channel_1, TIM_CCxN_Disable)不是已经使互补输出失能了吗?
12下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版