打印

STM32 PWM输出总结

[复制链接]
楼主: wzt19910506
手机看帖
扫描二维码
随时随地手机跟帖
21
huangfeng33| | 2012-10-19 21:29 | 只看该作者 回帖奖励 |倒序浏览
现在能**记笔记的朋友越来越少了,鼓励一下,总结的不错,顶

使用特权

评论回复
22
it_yrj| | 2012-12-26 00:54 | 只看该作者
请教一下如何让一个定时器产生四路频率和占空比均可调的PWM呢???多谢了

使用特权

评论回复
23
明月小厨| | 2012-12-27 12:07 | 只看该作者
it_yrj 发表于 2012-12-26 00:54
请教一下如何让一个定时器产生四路频率和占空比均可调的PWM呢???多谢了 ...

每个定时的周期是一样的,就算它多路输出,但大家的步调是上致的;但可以调不同的占空比;这里还有左,右对齐的问题;高级的可以中间对齐;
一个定时器的内核,只能出唯一的定时周期;

使用特权

评论回复
24
明月小厨| | 2012-12-27 12:08 | 只看该作者
也许我理解的不对,你的意思是4路频率可调的PWM;但4路的PWM频率是一样的;这是可以的.

使用特权

评论回复
25
it_yrj| | 2013-1-4 19:52 | 只看该作者
我确实是想输出四路频率不一样的PWM,纠结了很久了,他们说能,我也试了几种方法,没得到想要的结果,不过还是谢谢帮忙

使用特权

评论回复
26
it_yrj| | 2013-1-4 19:54 | 只看该作者
还有一个疑问就是怎么说出频率变化的PWM呢,例如五分钟变化一次,前五分钟10KHz,五分钟后100H组?

使用特权

评论回复
27
13249207512| | 2013-1-5 01:42 | 只看该作者

使用特权

评论回复
28
5186| | 2013-1-5 10:39 | 只看该作者
话说高级定时器控制电机确实方便啊,我用过啊

使用特权

评论回复
29
菜鸟变凤凰| | 2013-1-9 21:33 | 只看该作者
恩,赞一个

使用特权

评论回复
30
learnxp| | 2013-1-9 22:04 | 只看该作者
本帖最后由 learnxp 于 2013-1-9 22:07 编辑

我在使用是发现,要输出16K的PWM,用示波器看时,只有1.6K,这怎么会事啊?

使用特权

评论回复
31
火箭球迷| | 2013-1-9 22:53 | 只看该作者
总结的很好

使用特权

评论回复
32
yybj| | 2013-1-9 23:05 | 只看该作者
总结的不错,要更新了

使用特权

评论回复
33
明月小厨| | 2013-1-9 23:44 | 只看该作者
明月小厨 发表于 2012-12-27 12:07
每个定时的周期是一样的,就算它多路输出,但大家的步调是上致的;但可以调不同的占空比;这里还有左,右对齐 ...

我看见有这样的说法;一个定时器T2,竟然搞出4路不同的PWM波形(频率不同);

使用特权

评论回复
34
明月小厨| | 2013-1-9 23:48 | 只看该作者
所以真正的时钟频率应该是72mhz/(TIMX_PSC-1);楼主再确认一下;
所以真正的时钟频率应该是72mhz/(TIMX_PSC+1);我今天刚做的笔记中是+1;
而且还有一点,重装寄存器不为零;不然不工作.
另外还有一个参数叫时间分割;是一个数字滤波的思想,和串口的采样原理相似;
:(

使用特权

评论回复
35
明月小厨| | 2013-1-9 23:53 | 只看该作者
还有一个影子寄存器;我不知道怎么会译成影子的;
分明是这个寄存器在起作用;
另一种说法自然很多很容易理解;
这个影子寄存器把影子去掉;
而我们能直接操作的这个寄存器叫缓冲寄存器,并非直接起作用的;除非它的数据刷新到"影子"寄存器;:(

使用特权

评论回复
36
nnhy| | 2013-1-10 01:48 | 只看该作者
我在.Net Micro Framework上封装了一个IOTimer,能够利用通用定时器输出指定个数的PWM脉冲,用来控制步进电机和伺服电机很爽!~

使用特权

评论回复
37
libin1009| | 2013-1-10 08:13 | 只看该作者
总结的很好!

使用特权

评论回复
38
nnhy| | 2013-1-10 11:49 | 只看该作者
it_yrj 发表于 2013-1-4 19:52
我确实是想输出四路频率不一样的PWM,纠结了很久了,他们说能,我也试了几种方法,没得到想要的结果,不过 ...

你跟我想法一样,经过测试,在频率要求不是很高(100kHz以下)是,通过定时器中断,利用代码可以做到不同频率,不过这些不同频率得是定时器频率的分频,几分之一。
精度可能有2%左右的误差,不过很好用

我用C#都能做到,我不信你们用C做不到

使用特权

评论回复
39
learnxp| | 2013-1-10 13:19 | 只看该作者
在中央对齐模式下要X2

使用特权

评论回复
40
it_yrj| | 2013-1-12 13:55 | 只看该作者
nnhy 发表于 2013-1-10 11:49
你跟我想法一样,经过测试,在频率要求不是很高(100kHz以下)是,通过定时器中断,利用代码可以做到不同 ...

楼主能发个代码不,学习学习,前一段时间有事放下了,现在重新来做,多谢了,俺邮箱:yrj1129@126.com
俺之前也试过不同的方法,可是输出的频率根本就不是俺想要的,希望能得到楼主的指点。

使用特权

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

本版积分规则