OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 39466|回复: 64

怎么使用STM32F103C8T6产生SPWM?

[复制链接]

23

主题

143

帖子

1

精华

高级会员

Rank: 4

积分
933
金钱
933
注册时间
2012-4-23
在线时间
68 小时
发表于 2012-9-1 22:02:43 | 显示全部楼层 |阅读模式
如题,怎么使用STM32F103C8T6产生SPWM呢?
如果有做过的忽视芯片差异,能不能谈谈具体如何产生?
我一直算法上纠结不清。
有人做过吗?最近很急用。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2012-9-1 23:25:42 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

23

主题

143

帖子

1

精华

高级会员

Rank: 4

积分
933
金钱
933
注册时间
2012-4-23
在线时间
68 小时
 楼主| 发表于 2012-9-2 07:57:56 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
百度出来的方法没有具体讲解算法,不知道怎么去改变参数,而且按照百度出来的方法也实现不了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2012-9-2 10:18:57 | 显示全部楼层
SPWM,百度了下,就是按正弦规律变化的PWM波。
你只需要找到一个正弦表,然后让PWM的脉宽按照这个表的规律变化,输出的就是SPWM了。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

23

主题

143

帖子

1

精华

高级会员

Rank: 4

积分
933
金钱
933
注册时间
2012-4-23
在线时间
68 小时
 楼主| 发表于 2012-9-2 21:03:51 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
这个大的原理是懂,具体算法看不明白了
原子能不能弄个SPWM的例程?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2012-9-2 21:50:18 | 显示全部楼层
我弄了个PWM DAC的例程.没有SPWM。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

23

主题

143

帖子

1

精华

高级会员

Rank: 4

积分
933
金钱
933
注册时间
2012-4-23
在线时间
68 小时
 楼主| 发表于 2012-9-3 01:22:18 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
嗯,希望有时间可以做一个SPWM出来,这个在比赛中做逆变电源是必须用的。
像算法之类的我觉得也可以写个例程。
比如几乎所有国赛中都会用到的PID算法等。
回复 支持 反对

使用道具 举报

23

主题

143

帖子

1

精华

高级会员

Rank: 4

积分
933
金钱
933
注册时间
2012-4-23
在线时间
68 小时
 楼主| 发表于 2012-9-4 08:04:57 | 显示全部楼层
已经实现SPWM的50Hz正弦波完美输出,后面有空再把工程以及硬件电路图和调试经验贴上来。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2012-9-4 11:08:57 | 显示全部楼层
恭喜
回复 支持 反对

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2012-9-6
在线时间
0 小时
发表于 2012-9-16 16:28:04 | 显示全部楼层
回复【8楼】李牧林:
---------------------------------
能发我下么。QQ475282640
=,=   =/=   =。=   =,=   =.=
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2013-5-3
在线时间
2 小时
发表于 2013-5-3 06:57:20 | 显示全部楼层
源码发给我一个啊,楼主。。。谢谢!!!非常感谢。。。
QQ : 646519113
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2012-11-7
在线时间
3 小时
发表于 2013-5-16 21:33:13 | 显示全部楼层
我也想要!
QQ439315978
回复 支持 反对

使用道具 举报

20

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2013-4-18
在线时间
0 小时
发表于 2013-6-11 19:55:08 | 显示全部楼层
回复【8楼】李牧林:
---------------------------------
楼住好,现在我也正在做逆变电源,之前做的SPWM 波错了,现在需要修改,网上的资料不怎么看的懂,今年也准备参加电子设计大赛呢,能否加我QQ846303467。
回复 支持 反对

使用道具 举报

10

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-7-2
在线时间
0 小时
发表于 2013-7-22 18:32:43 | 显示全部楼层
楼主,给我也发份啊694908939@qq.com
回复 支持 反对

使用道具 举报

2

主题

17

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-7-22
在线时间
0 小时
发表于 2013-7-22 18:44:10 | 显示全部楼层
楼主也发我一份吧,邮箱是tyf123321@sina.com
回复 支持 反对

使用道具 举报

2

主题

17

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-7-22
在线时间
0 小时
发表于 2013-7-22 18:45:17 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
楼主在线等SPWM波啊,急求
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2013-7-22 20:02:17 | 显示全部楼层
很简单啊。
比如你要输出1Khz的SPWM正弦波,分辨率为8位,每个周期100个点,输出PWM频率为1Mhz。我们不讨论外部滤波电路,这个你自己找相关电路去设计。

那么,通过软件,你先得到100个点的正弦波采样值(有专门软件的,我论坛就发过)。你可以用定时器A来产生1Mhz的PWM,然后用定时器B,做定时器中断,100Khz的频率,每次中断,就把一个采样值赋值给定时器A的输出通道:CCRx。然后不停的循环,每中断一百次,就输出1个波。不停的循环就不停的输出,那么PWM输出端,经过滤波后,就是1Khz的正弦波了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

17

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-7-22
在线时间
0 小时
发表于 2013-7-22 20:07:55 | 显示全部楼层
回复【17楼】正点原子:
---------------------------------
有源码可以提供给我们参考吗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2013-7-22 20:13:09 | 显示全部楼层
没有
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2013-7-22 20:13:44 | 显示全部楼层
方法都告诉你了,还不会搞,那真是缺乏练习的典型了...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

17

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-7-22
在线时间
0 小时
发表于 2013-7-22 20:21:00 | 显示全部楼层
回复【20楼】正点原子:
---------------------------------
刚刚才接触这个,完全是菜鸟
回复 支持 反对

使用道具 举报

11

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2013-7-29
在线时间
7 小时
发表于 2013-7-30 10:43:30 | 显示全部楼层
楼主求分享程序 594883148@qq.com
回复 支持 反对

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2013-8-13
在线时间
1 小时
发表于 2013-8-13 20:36:17 | 显示全部楼层
搞出来了,要程序找我,QQ1198791962
回复 支持 反对

使用道具 举报

6

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-4-4
在线时间
0 小时
发表于 2013-8-17 23:29:56 | 显示全部楼层
回复【8楼】李牧林:
---------------------------------
楼主可不可以分享下SPWM程序啊,谢谢
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2013-8-26
在线时间
0 小时
发表于 2013-8-26 15:08:55 | 显示全部楼层
回复【5楼】李牧林:
---------------------------------
楼主能不能分享下SPWM的程序啊 2452770881@qq.com 十分感谢
回复 支持 反对

使用道具 举报

16

主题

89

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
316
金钱
316
注册时间
2012-10-6
在线时间
9 小时
发表于 2013-8-29 15:07:44 | 显示全部楼层
回复【8楼】李牧林:
---------------------------------
求啊
回复 支持 反对

使用道具 举报

1

主题

22

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-3-13
在线时间
0 小时
发表于 2013-9-2 08:12:24 | 显示全部楼层
求程序及源码!!!!!!!!!!!!!!
逝者如斯夫不舍昼夜
回复 支持 反对

使用道具 举报

8

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2013-3-19
在线时间
32 小时
发表于 2013-12-3 21:14:33 | 显示全部楼层
能发一份给我研究吗?我也很需要SPWM的代码,谢谢806869391@qq.com
有缘千里来相会,无缘对面不相识。
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-12-6
在线时间
0 小时
发表于 2013-12-6 13:00:46 | 显示全部楼层
回复【17楼】正点原子:
---------------------------------
请问能发那给软件的链接吗?或者教程资料里有吗?
要宁静
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2013-12-6 23:32:46 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-12-6
在线时间
0 小时
发表于 2013-12-6 23:35:11 | 显示全部楼层
回复【17楼】正点原子:
---------------------------------
请问原子大哥,那个软件在教程资料的哪里?
要宁静
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-12-6
在线时间
0 小时
发表于 2013-12-6 23:36:59 | 显示全部楼层
回复【31楼】1511740552:
---------------------------------
哦,看到了,不好意思,打扰了
要宁静
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-12-6
在线时间
0 小时
发表于 2013-12-6 23:57:51 | 显示全部楼层
回复【17楼】正点原子:
---------------------------------
为什么定时器中断要100Khz的频率
要宁静
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2013-12-7 10:55:17 | 显示全部楼层
回复【33楼】1511740552:
---------------------------------
你还是多看看资料学习下吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2013-7-26
在线时间
0 小时
发表于 2014-7-23 16:07:33 | 显示全部楼层
楼主能把你的SPWM波的程序共享一下吗?最近正在研究这个,还有好些地方不得其解
回复 支持 反对

使用道具 举报

1

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
266
金钱
266
注册时间
2014-7-5
在线时间
43 小时
发表于 2014-7-24 18:56:47 | 显示全部楼层
mark!!!
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2014-3-21
在线时间
0 小时
发表于 2014-9-29 16:58:32 | 显示全部楼层
回复【8楼】李牧林:
---------------------------------
继续你的SPWM波     416908607@qq.com    谢谢你
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-6-13
在线时间
1 小时
发表于 2014-12-19 17:08:56 | 显示全部楼层
楼主,同求您的SPWM源程序     793344539@qq.com       万分感谢啊!!!
回复 支持 反对

使用道具 举报

13

主题

206

帖子

1

精华

高级会员

Rank: 4

积分
613
金钱
613
注册时间
2014-10-26
在线时间
32 小时
发表于 2015-7-23 20:41:24 | 显示全部楼层
回复【8楼】李牧林:
---------------------------------
贴出来 参考学习下!
学习!
回复 支持 反对

使用道具 举报

13

主题

206

帖子

1

精华

高级会员

Rank: 4

积分
613
金钱
613
注册时间
2014-10-26
在线时间
32 小时
发表于 2015-7-23 20:43:54 | 显示全部楼层
回复【34楼】正点原子:
---------------------------------
假如你要做100hz的 SPWM(正弦波),每个周期采样10000次,就是 10Khz了?  
回答16楼那个问题
还有就是17-32楼去哪里了
学习!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-7-23 22:08:27 | 显示全部楼层
回复【40楼】q27488:
---------------------------------
PWM频率是100*10000=1Mhz,而且是最少得1Mhz。可以大,但是不可以小。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

13

主题

206

帖子

1

精华

高级会员

Rank: 4

积分
613
金钱
613
注册时间
2014-10-26
在线时间
32 小时
发表于 2015-7-24 18:42:48 | 显示全部楼层
回复【41楼】正点原子:
---------------------------------
为什么最少是1Mhz呢? 我采样6000个点不行么(采样点要为偶数),那100hz的 正弦波需要的PWM频率就是100*6000=600khz,
学习!
回复 支持 反对

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2013-8-13
在线时间
1 小时
发表于 2015-7-26 11:12:33 | 显示全部楼层
把工程文件放附件里了。

SPWM.zip

4.22 MB, 下载次数: 4432

回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-7-26 14:01:27 | 显示全部楼层
回复【43楼】凌霄青云:
---------------------------------
谢谢分享库函数版本SPWM,最近正在搞SPWM,学习一下
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-7-26 15:03:51 | 显示全部楼层
回复【42楼】q27488:
---------------------------------
保证一个值,输出一个PWM,就必须是1M了,如果一个值输出多个PWM,效果更好。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

13

主题

206

帖子

1

精华

高级会员

Rank: 4

积分
613
金钱
613
注册时间
2014-10-26
在线时间
32 小时
发表于 2015-7-26 22:31:31 | 显示全部楼层
回复【45楼】正点回复【45楼】正点原子:
---------------------------------
我没能理解这句话~ 一个值输出一个PWM?
学习!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-7-26 22:36:56 | 显示全部楼层
回复【46楼】q27488:
---------------------------------
你要1000个点,也就是1000个电压值。
那么1000个电压值,是不是每一个值,至少要一个PWM周期,才可以有效?如果都不够一个周期,如何保证准确性?
比如这个点是1V,那么肯定理论上,只有一个PWM脉宽,对应1V电压,那么你是不是要至少输出一个这样的PWM脉宽,才可以有可能出现1V?
当然,如果你不停的输出这个PWM脉宽,那么输出就是恒定的1V了,所以,我说,最少要1个PWM周期,但是上不封顶。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

13

主题

206

帖子

1

精华

高级会员

Rank: 4

积分
613
金钱
613
注册时间
2014-10-26
在线时间
32 小时
发表于 2015-7-26 23:30:41 | 显示全部楼层
回复【47楼】正点原子:
---------------------------------
好,谢谢,我理解前半句,但是后面的  就必须是1M了,这句怎么说?
学习!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-7-27 23:26:07 | 显示全部楼层
回复【48楼】q27488:
---------------------------------
啥意思?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2015-8-2
在线时间
1 小时
发表于 2015-8-2 15:34:04 | 显示全部楼层
根据站长的思路写了个三路输出的SPWM波,想问下如果我在数组前面乘一个系数用来改变输出的SPWM波,最后通过滤波后,达到改变正弦波的幅度。  这样的方法合理吗?是否实用?

SPWM.zip

2.6 MB, 下载次数: 2100

回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-16 21:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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