[STM32F4] STM32F407 同一个定时器的两个通道产生的PWM脉冲不对

[复制链接]
4311|16
 楼主| s290484188 发表于 2024-4-23 16:22 | 显示全部楼层 |阅读模式
STM32F407VE ,使用定时器1同时产生两路PWM波
两路PWM产生的脉冲数不一样时,实际产生的脉冲不对,会少1个
实际上是不能使用这种方式做吗?
一只眠羊 发表于 2024-5-20 12:01 | 显示全部楼层
在STM32F407VE微控制器上,使用定时器1(TIM1)同时产生两路PWM波是可行的。
未说出口的像你 发表于 2024-5-20 15:00 | 显示全部楼层
一般来说,如果两路PWM波的脉冲数不一样,可能会导致实际产生的脉冲数不准确,出现少1个脉冲的情况。
在曼谷的春 发表于 2024-5-20 17:00 | 显示全部楼层
在使用定时器1产生PWM波时,两路PWM波的周期和占空比是由同一个定时器的计数器和比较寄存器控制的。如果两路PWM波的脉冲数不一样,那么它们的周期和占空比设置也会不同。
香水城 发表于 2024-5-20 17:03 | 显示全部楼层
两路PWM产生的脉冲数不一样时,实际产生的脉冲不对,会少1。。。。。

===》现在的问题是你具体怎么产生的?用什么方法?或者说你是通过什么方式控制脉冲个数的?中断还是DMA?有无开启预装功能?。。。。
我吃小朋友 发表于 2024-5-20 19:00 | 显示全部楼层
在定时器1的PWM模式下,计数器的值从0递增到自动重载值(ARR),然后重新开始计数。当计数器的值小于第一个比较寄存器(CCR1)的值时,第一路PWM波的输出为高电平;当计数器的值大于第一个比较寄存器的值时,第一路PWM波的输出为低电平。同样的,对于第二路PWM波,使用第二个比较寄存器(CCR2)来控制。
月亮一键变蓝 发表于 2024-5-20 21:00 | 显示全部楼层
如果两路PWM波的脉冲数不一样,那么它们的比较寄存器的值也会不同。当计数器的值达到第一个比较寄存器的值时,第一路PWM波的状态会改变,但第二路PWM波的状态可能还没有改变,因为它的比较寄存器的值更大。这就导致了实际产生的脉冲数不准确,可能会少1个脉冲。
失物招領 发表于 2024-5-20 23:00 | 显示全部楼层
你可以这样,增加定时器的时钟频率,可以提高计数器的精度,从而减小误差。
她已醉 发表于 2024-5-21 01:00 | 显示全部楼层
建议根据两路PWM波的脉冲数差异,适当调整比较寄存器的值,使得两路PWM波的状态能够同步改变。
将爱藏于深海 发表于 2024-5-21 03:00 | 显示全部楼层
如果需要精确控制两路PWM波的脉冲数,可以考虑使用另一个定时器来独立生成第二路PWM波,以避免计数器和比较寄存器的冲突。
春日负喧 发表于 2024-5-21 05:00 | 显示全部楼层
多开一个定时器不就解决问题了吗
温室雏菊 发表于 2024-5-21 12:00 | 显示全部楼层
一般是可以支持1个定时器输出2路PWM波的啊
probedog 发表于 2024-5-21 14:42 | 显示全部楼层
检查一下软硬件配置
probedog 发表于 2024-5-21 19:00 | 显示全部楼层
死锁时间设置不当
classroom 发表于 2024-5-21 19:59 | 显示全部楼层
如果你的PWM更新速率非常高,并且你的代码没有足够的时间来更新所有的PWM参数,可能会导致PWM脉冲出现问题。确保你的更新速率在微控制器的处理能力范围内。
尽快回复过 发表于 2024-8-31 21:44 | 显示全部楼层
当两路PWM的频率或占空比差异较大时,可能会出现脉冲计数不准确的情况。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

54

帖子

0

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