打印

stm32 如何控制pwm脉冲数量

[复制链接]
15903|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 输出

使用特权

评论回复
5
st316| | 2012-5-12 23:33 | 只看该作者
通过向TIMx_CRRx中填入适当的数来输出自己所需的频率和占空比的方波信号
可以参考下这篇**:http://blog.sina.com.cn/s/blog_49cb42490100s6uh.html

使用特权

评论回复
6
zhanxiage110|  楼主 | 2012-5-14 16:37 | 只看该作者
4# airwill 你说的是pwm的定时器和计数的定时器是一个? 那如果中断函数时间占用时间过长会不会影响到pwm呢? 我pwm输出30K左右

使用特权

评论回复
7
zhanxiage110|  楼主 | 2012-5-14 16:39 | 只看该作者
5# st316 您给的链接的那个程序好像也是波形无线发的

使用特权

评论回复
8
香水城| | 2012-5-14 16:58 | 只看该作者
简单的做法是把PWM波输入到另一个定时器做计数。

使用特权

评论回复
9
dfsa| | 2012-5-14 18:58 | 只看该作者
这个应该不难实现

使用特权

评论回复
10
zhanxiage110|  楼主 | 2012-5-14 21:08 | 只看该作者
9# dfsa 请9楼指点

使用特权

评论回复
11
zhanxiage110|  楼主 | 2012-5-14 21:11 | 只看该作者
8# 香水城 我想过那种方法,不过我刚学stm不太懂,如果用那种方法是用tim的输入捕获功能还是神马功能?

使用特权

评论回复
12
airwill| | 2012-5-15 08:39 | 只看该作者
pwm的定时器和计数的定时器是一个?          --- 当然

那如果中断函数时间占用时间过长会不会影响到pwm呢? 我pwm输出30K左右
只要适当处理, 不会, 只要用好那些寄存器缓冲器. 就 30K 的 PWM 周期 33uS, 你的中断响应函数不超过 16uS(双向计数) 就不会影响计数. 另外, 即使最长时间会超过 33uS, 只要寄存器处理在响应函数的前 16uS, 也不会影响计数和波形数的控制.

使用特权

评论回复
13
zhanxiage110|  楼主 | 2012-5-15 09:49 | 只看该作者
12# airwill 非常感谢,我的能控制了,就是你说的那样,昨天也是按这种方法弄得,可能是哪里语句写错了,没实现,今天一大早弄就成功了,我还想问个问题哈,我如果让一个io口高低高低的变化,最快能有多快你试过么? 我能让他在while循环里不加延时无线的高低变化么?

使用特权

评论回复
14
airwill| | 2012-5-19 13:31 | 只看该作者
while 里完成一个高低变化, 我记得理论上应该是 6 个周期.
但是实测不止这么多, 可能跟 FLASH 等待有关.

使用特权

评论回复
15
seemeflystm| | 2012-11-6 15:54 | 只看该作者
13# zhanxiage110 请为你是怎么实现的?我是初学者,不知道这个定时器中断是在什么情况下会产生中断,能给说的详细点吗?

使用特权

评论回复
16
seemeflystm| | 2012-11-6 15:54 | 只看该作者
13# zhanxiage110 请为你是怎么实现的?我是初学者,不知道这个定时器中断是在什么情况下会产生中断,能给说的详细点吗?

使用特权

评论回复
17
seemeflystm| | 2012-11-6 15:55 | 只看该作者
13# zhanxiage110 请为你是怎么实现的?我是初学者,不知道这个定时器中断是在什么情况下会产生中断,能给说的详细点吗?

使用特权

评论回复
18
seemeflystm| | 2012-11-6 15:56 | 只看该作者
13# zhanxiage110 请为你是怎么实现的?我是初学者,不知道这个定时器中断是在什么情况下会产生中断,能给说的详细点吗?

使用特权

评论回复
19
seemeflystm| | 2012-11-6 15:56 | 只看该作者
怎么回复不上呢

使用特权

评论回复
20
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

粉丝