找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 32366|回复: 0
打印 上一主题 下一主题
收起左侧

利用STM32定时器输出指定脉冲个数的一种方法

[复制链接]
跳转到指定楼层
楼主
ID:98618 发表于 2016-11-15 01:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们在做嵌入式产品的开发过程中,有时需要输出指定数目的脉冲。实现它的方法较多,这里介绍一种利用STM32定时器的单脉冲模式来实现的方法。


STM32定时器的单脉冲输出功能,其实是定时器输出比较功能的一个特殊应用。即让定时器在某个事件触发后的一段时间产生指定脉宽的单脉冲信号。


计数器的启动通常可由从模式控制器控制,可由比较输出模式或PWM输出模式来产生波形。通过置位OPM@TIMx_CR1来在下一个更新事件时关闭计数器来实现单脉冲输出。



STM32定时器里有个重复计数器TIMx_RCR,当它的值是个非0值N时,计数器不再每次溢出【上溢或下溢】时都产生更新事件,而是当发生第N+1次溢出时才产生更新事件。如果RCR=0的话,就是每次溢出都产生更新事件。

那么,当把单脉冲输出模式与RCR寄存器配合使用时,就不难生成指定数目的脉冲个数。此时脉冲个数为TIMx_RCR的值加1。


在上面原理的基础上,通过使用STM32定时器的主从模式还可以方便地实现周期性地输出指定数目的脉冲。


假如按上图所示,TIM2与TIM1主从连接,实现周期性的输出5个脉冲。

TIM2 配置为 触发模式,触发TIM1的计数;

TIMER1 配置为 单脉冲输出模式;TIM1_RCR=4;




关于上述内容的更多细节可以点击左下方的”阅读原文”去下载AN4776,相关应用的参考固件代码,可以去www.st.com/stm32 搜索X-CUBE-TIMCOOKER下载。整个固件包解压后的工程目录如下所示,其中就有上面提到的两种应用的参考工程代码。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表