打印
[STM32F4]

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

[复制链接]
3326|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波的脉冲数不一样,那么它们的周期和占空比设置也会不同。

使用特权

评论回复
5
香水城| | 2024-5-20 17:03 | 只看该作者
两路PWM产生的脉冲数不一样时,实际产生的脉冲不对,会少1。。。。。

===》现在的问题是你具体怎么产生的?用什么方法?或者说你是通过什么方式控制脉冲个数的?中断还是DMA?有无开启预装功能?。。。。

使用特权

评论回复
6
我吃小朋友| | 2024-5-20 19:00 | 只看该作者
在定时器1的PWM模式下,计数器的值从0递增到自动重载值(ARR),然后重新开始计数。当计数器的值小于第一个比较寄存器(CCR1)的值时,第一路PWM波的输出为高电平;当计数器的值大于第一个比较寄存器的值时,第一路PWM波的输出为低电平。同样的,对于第二路PWM波,使用第二个比较寄存器(CCR2)来控制。

使用特权

评论回复
7
月亮一键变蓝| | 2024-5-20 21:00 | 只看该作者
如果两路PWM波的脉冲数不一样,那么它们的比较寄存器的值也会不同。当计数器的值达到第一个比较寄存器的值时,第一路PWM波的状态会改变,但第二路PWM波的状态可能还没有改变,因为它的比较寄存器的值更大。这就导致了实际产生的脉冲数不准确,可能会少1个脉冲。

使用特权

评论回复
8
失物招領| | 2024-5-20 23:00 | 只看该作者
你可以这样,增加定时器的时钟频率,可以提高计数器的精度,从而减小误差。

使用特权

评论回复
9
她已醉| | 2024-5-21 01:00 | 只看该作者
建议根据两路PWM波的脉冲数差异,适当调整比较寄存器的值,使得两路PWM波的状态能够同步改变。

使用特权

评论回复
10
将爱藏于深海| | 2024-5-21 03:00 | 只看该作者
如果需要精确控制两路PWM波的脉冲数,可以考虑使用另一个定时器来独立生成第二路PWM波,以避免计数器和比较寄存器的冲突。

使用特权

评论回复
11
春日负喧| | 2024-5-21 05:00 | 只看该作者
多开一个定时器不就解决问题了吗

使用特权

评论回复
12
温室雏菊| | 2024-5-21 12:00 | 只看该作者
一般是可以支持1个定时器输出2路PWM波的啊

使用特权

评论回复
13
probedog| | 2024-5-21 14:42 | 只看该作者
检查一下软硬件配置

使用特权

评论回复
14
probedog| | 2024-5-21 19:00 | 只看该作者
死锁时间设置不当

使用特权

评论回复
15
classroom| | 2024-5-21 19:59 | 只看该作者
如果你的PWM更新速率非常高,并且你的代码没有足够的时间来更新所有的PWM参数,可能会导致PWM脉冲出现问题。确保你的更新速率在微控制器的处理能力范围内。

使用特权

评论回复
16
尽快回复过| | 2024-8-31 21:44 | 只看该作者
当两路PWM的频率或占空比差异较大时,可能会出现脉冲计数不准确的情况。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

54

帖子

0

粉丝