打印
[STM32F1]

STM32定时器PWM功能

[复制链接]
131|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tabmone|  楼主 | 2024-7-28 13:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
先将STM32某定时器计数周期设为0xff,单向递增计数模式,OC比较值设为0x7F。在某时刻将新的计数周期0x7F与比较值0x3F加载到影子寄存器。当正在进行的一个周期结束后,经示波器测量确实可以看到其下一个周期发生变化,但其周期明显与预设值对应不上!再次经过一个周期,定时器才会按照预设值稳定输出。

以上是咨询者不算很清晰的描述【其实咨询TIMER问题最好配上时序图】,但可以了解到他要做的事情就是在ARR=0xff,ccr=0x7F的PWM输出状态下,于某时刻赋予ARR和CCR新值以改变输出波形。
事情不算复杂,疑点就是为什么需要2个周期延时后才能有基于新配置的稳定输出。【他这里说的2个周期显然不清楚到底指的前后哪个周期值】

这个问题主要涉及到定时器寄存器的预装功能。有些时候我们需要保证输出波形完整性、连续性,开启ARR及CCR的预装功能就比较合适,使用CubeMx配置时做些勾选即可。开启预装后,修改ARR及CCR的值,生效时间点最长可能延后1个旧计数周期。不过这里要注意,我们修改ARR及CCR的值若不是特别需求,建议在一个计数周期内完成修改,不要一个值在更新事件之前完成赋值,另一个则发生在该更新事件之后。

使用特权

评论回复
沙发
yiy| | 2024-7-28 22:57 | 只看该作者
cubeMX好戏是可以配置PWM的。

使用特权

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

本版积分规则

20

主题

1293

帖子

0

粉丝