STM32如何实现同个管脚PWM输出不同频率无缝切换

[复制链接]
 楼主| topspeedbupt 发表于 2010-5-31 22:27 | 显示全部楼层
20# 香水城
在初始化的时候使能了。现在这里还需要设吗?
香水城 发表于 2010-5-31 22:58 | 显示全部楼层
楼主位给的程序中没有看到。
 楼主| topspeedbupt 发表于 2010-6-1 09:06 | 显示全部楼层
22# 香水城

在初始化时,这部分使能了。
  /* PWM1 Mode configuration: Channel2*/
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;
  TIM_OCInitStructure.TIM_Pulse = 0;
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
  TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;
  TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
  TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;
  TIM_OC2Init(TIM1, &TIM_OCInitStructure);
  TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);

所以在后面改频率的时候,没有再调这个函数。
 楼主| topspeedbupt 发表于 2010-6-20 21:43 | 显示全部楼层
多谢香主。问题解决了。是因为我没使能   TIM_ARRPreloadConfig(TIM1, ENABLE);
selina1983 发表于 2011-6-9 11:24 | 显示全部楼层
我正好用到 看看
selina1983 发表于 2011-6-9 13:29 | 显示全部楼层
SampsonKong 发表于 2012-3-15 09:07 | 显示全部楼层
jaky80000 发表于 2013-6-21 10:53 | 显示全部楼层
楼主,香水城,你好!我现在也碰到了这个问题,但是我的问题感觉有点奇怪。
楼主说的ARR,和占空比的我都使能了,没有开启事件更新中断,想让硬件一个PWM周期结束后自动从预装载寄存器里读取数据,我设定的是最开始的脉宽周期时4ms,我要求在每隔10ms改变一次频率,用一个定时器每隔10ms重新加载一次ARR和CRR4的值,这时就出现了频率无法改变,只输出了最开始和最后的频率,中间的脉冲频率都没有。我采用4ms的话,按理来说,10ms才改变一次,都会有一个PWM周期结束的,不应该会有跳掉我设置的频率才对的,可不知道为什么会被丢弃了。如果我在10ms中断里强制更新事件,是可以改变频率,同时也会在切换时出现1个异常的波形,请教2位怎么解决呀。谢谢!
arhar 发表于 2014-4-28 17:22 | 显示全部楼层
学习了
Forever_092 发表于 2014-8-12 09:49 | 显示全部楼层
看了一会,好像就是改变那个arr寄存器中的值,但是要随时更新时吧,而且不能有太大的延迟是不
81190865 发表于 2015-1-6 10:33 | 显示全部楼层
mark 多谢香主
liuwen101423 发表于 2015-8-6 09:39 | 显示全部楼层
topspeedbupt
你好!

打搅了,你用STM32实现同个管脚PWM输出不同频率无缝切换时,占空比可以动态改变吗?
最终输出的PWM波形是什么样子的,能不能上一个图,我也想做一个两种不同频率,占空比可调的PWM无缝切换输出。
能否将“STM32实现同个管脚PWM输出不同频率无缝切换”的工程源码发送给我参考一下?
我的邮箱:330493346@qq.com
六月飞花 发表于 2019-12-4 13:18 | 显示全部楼层
alucx 发表于 2020-1-7 17:31 | 显示全部楼层
学习了,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
快速回复 在线客服 返回列表 返回顶部