首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在STM32F4脉宽调制上产生固定数量的脉冲

在STM32F4脉宽调制上产生固定数量的脉冲
EN

Stack Overflow用户
提问于 2020-06-05 22:37:20
回答 2查看 1.7K关注 0票数 1

我正在尝试控制一个伺服马达(link)。它是一种无刷直流电机,其接口类似于步进电机。

电机根据从PWM接收到的脉冲数旋转定义的距离。速度由PWM的脉冲频率决定,就像步进电机一样。

为了控制这个马达,我使用了一个微控制器STM32F407ZET6。我可以很容易地改变PWM的频率和占空比,但我的疑问如下:

如何在PWM中生成固定数量的脉冲?例如,我希望PWM在特定时间发送1000个脉冲,频率为20 the,占空比为50%。20 the和50%占空比很容易定义,但我无法确定如何生成1000个固定脉冲。

我尝试的解决方案之一是在计数器模式下将PWM重新连接到定时器,并在生成所需数量的脉冲时停止PWM。但是脉冲的数量并不总是固定的,有时从998到1005 (例如)。

有没有可能在不需要反馈的情况下做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2020-06-05 23:10:22

最简单的方式:

  1. UG中断=计数周期。N个周期后,禁用定时器。在内存中使用定时器寄存器值创建一个缓冲区,并使用定时器突发mode.
  2. Configure
  3. ,n个周期具有相同的源地址和目标地址。N个周期后,将生成事务结束中断-禁用计时器。
  4. 在更新(溢出)时使用从定时器计数。设置溢出中断并禁用PWM定时器。

代码语言:javascript
复制
- many other methods.

票数 0
EN

Stack Overflow用户

发布于 2020-06-06 03:11:30

这可以通过将所谓的“单脉冲模式”(参考手册第551页)与重复计数器(第529页)相结合来轻松实现。您所要做的就是启用此模式(CR1中的OPM位),设置重复计数器(RCR)并启动计时器。IIRC您还必须强制执行更新事件才能加载RCR。参考手册将有更多关于这方面的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62217872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档