stm32 如何控制pwm脉冲数量

[复制链接]
16873|27
 楼主| zhanxiage110 发表于 2012-5-11 14:58 | 显示全部楼层 |阅读模式
我用高级定时器TIM1输出固定频率和占空比的PWM波,但是我怎么能够控制它的数量,想输出几个脉冲我能够控制,求高手指点一下,
Simon21ic 发表于 2012-5-11 15:27 | 显示全部楼层
多少个?
 楼主| zhanxiage110 发表于 2012-5-11 15:35 | 显示全部楼层
我是驱动步进电机,我还不知道需要走多长的距离,所以我不知道到底输出脉冲的个数,我现在只有能控制数量就行 2# Simon21ic
airwill 发表于 2012-5-12 09:23 | 显示全部楼层
很简单:
打开 PWM, 然后用定时中断来计数, 到达脉冲个数时, 关闭 PWM 输出
st316 发表于 2012-5-12 23:33 | 显示全部楼层
通过向TIMx_CRRx中填入适当的数来输出自己所需的频率和占空比的方波信号
可以参考下这篇**:http://blog.sina.com.cn/s/blog_49cb42490100s6uh.html
 楼主| zhanxiage110 发表于 2012-5-14 16:37 | 显示全部楼层
4# airwill 你说的是pwm的定时器和计数的定时器是一个? 那如果中断函数时间占用时间过长会不会影响到pwm呢? 我pwm输出30K左右
 楼主| zhanxiage110 发表于 2012-5-14 16:39 | 显示全部楼层
5# st316 您给的链接的那个程序好像也是波形无线发的
香水城 发表于 2012-5-14 16:58 | 显示全部楼层
简单的做法是把PWM波输入到另一个定时器做计数。
dfsa 发表于 2012-5-14 18:58 | 显示全部楼层
这个应该不难实现
 楼主| zhanxiage110 发表于 2012-5-14 21:08 | 显示全部楼层
9# dfsa 请9楼指点
 楼主| zhanxiage110 发表于 2012-5-14 21:11 | 显示全部楼层
8# 香水城 我想过那种方法,不过我刚学stm不太懂,如果用那种方法是用tim的输入捕获功能还是神马功能?
airwill 发表于 2012-5-15 08:39 | 显示全部楼层
pwm的定时器和计数的定时器是一个?          --- 当然

那如果中断函数时间占用时间过长会不会影响到pwm呢? 我pwm输出30K左右
只要适当处理, 不会, 只要用好那些寄存器缓冲器. 就 30K 的 PWM 周期 33uS, 你的中断响应函数不超过 16uS(双向计数) 就不会影响计数. 另外, 即使最长时间会超过 33uS, 只要寄存器处理在响应函数的前 16uS, 也不会影响计数和波形数的控制.
 楼主| zhanxiage110 发表于 2012-5-15 09:49 | 显示全部楼层
12# airwill 非常感谢,我的能控制了,就是你说的那样,昨天也是按这种方法弄得,可能是哪里语句写错了,没实现,今天一大早弄就成功了,我还想问个问题哈,我如果让一个io口高低高低的变化,最快能有多快你试过么? 我能让他在while循环里不加延时无线的高低变化么?
airwill 发表于 2012-5-19 13:31 | 显示全部楼层
while 里完成一个高低变化, 我记得理论上应该是 6 个周期.
但是实测不止这么多, 可能跟 FLASH 等待有关.
seemeflystm 发表于 2012-11-6 15:54 | 显示全部楼层
13# zhanxiage110 请为你是怎么实现的?我是初学者,不知道这个定时器中断是在什么情况下会产生中断,能给说的详细点吗?
seemeflystm 发表于 2012-11-6 15:54 | 显示全部楼层
13# zhanxiage110 请为你是怎么实现的?我是初学者,不知道这个定时器中断是在什么情况下会产生中断,能给说的详细点吗?
seemeflystm 发表于 2012-11-6 15:55 | 显示全部楼层
13# zhanxiage110 请为你是怎么实现的?我是初学者,不知道这个定时器中断是在什么情况下会产生中断,能给说的详细点吗?
seemeflystm 发表于 2012-11-6 15:56 | 显示全部楼层
13# zhanxiage110 请为你是怎么实现的?我是初学者,不知道这个定时器中断是在什么情况下会产生中断,能给说的详细点吗?
seemeflystm 发表于 2012-11-6 15:56 | 显示全部楼层
怎么回复不上呢
lut1lut 发表于 2012-11-6 17:49 | 显示全部楼层
12# airwill 非常感谢,我的能控制了,就是你说的那样,昨天也是按这种方法弄得,可能是哪里语句写错了,没实现,今天一大早弄就成功了,我还想问个问题哈,我如果让一个io口高低高低的变化,最快能有多快你试过么 ...
zhanxiage110 发表于 2012-5-15 09:49


GPIO翻转的最高频率:

F1的话,应该是该GPIO所在APB总线时钟的1/4吧;(18MHz max)

F2的话,GPIO外设被放到AHB上,指令过桥时间省掉,最高翻转频率应该是AHB总线时钟的1/2吧。(60MHz max)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:骑车去远方

0

主题

48

帖子

1

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