OpenEdv-开源电子网

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

PWM控制直流电机疑问

[复制链接]

19

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2013-12-2
在线时间
0 小时
发表于 2014-9-16 12:05:07 | 显示全部楼层 |阅读模式
5金钱
学以用之一直是我的想法,为了深入学习,准备做一个nrf24无线遥控小车用来更加深入学习stm32
开始用GPIO的0  1控制L298进而控制电机运动,后来看到PWM,就准备用PWM控制298
网上查了很多资料明白了一些可是还有一些疑问。
疑问一
系统初始化不变,用TIM3时钟为72MHz
那pwm的周期就用
Tout  =((arr+1)*(psc+1))/Tclk
这个公式呗
Tclk:是72吧?
那周期就是1ms??

疑问二
在TIM3_pwm_Init(899,0)  //PWM 频率=7200000/(899+1)   
这里的720000是不是就是上面的Tclk
TIM3_pwm_Init(u16 arr,u16 psc)的时候 pwm频率=Tclk/((arr+1)*(psc+1))
一些相关材料说 控制小电机频率1MHz就行  那我是不是可以设置   TIM3_pwm_Init(899,7999)???

疑问三
用这个TIM_SetCompare2()
函数控制占空比我想控制占空比为20%
是不是在前面我应该定义  u16 pwm=???
然后在TIM_SetCompare2(TIM3,pwm)

疑问一和疑问二感觉点冲突呀,周期1ms太短了,可是我要设置频率1MHz呀,还是说疑问一中的pwm周期不是这样算的

最佳答案

查看完整内容[请看2#楼]

1,是 2,当然可以设置。 3,可以这么做,翻转就是要改变CCR的值。至于用什么方式,这些你自己掌控就是了。 另外,这些东西,何不自己动手做做呢? 不需要什么问题都要等别人确认才去做,那就没什么意思了。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-9-16 12:05:08 | 显示全部楼层
1,是
2,当然可以设置。
3,可以这么做,翻转就是要改变CCR的值。至于用什么方式,这些你自己掌控就是了。

另外,这些东西,何不自己动手做做呢? 不需要什么问题都要等别人确认才去做,那就没什么意思了。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

19

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2013-12-2
在线时间
0 小时
 楼主| 发表于 2014-9-16 16:27:28 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
那就好 我怕频率大 把板子啥的弄坏  ,谢谢了 原子哥
回复

使用道具 举报

4

主题

200

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
236
金钱
236
注册时间
2012-12-19
在线时间
0 小时
发表于 2014-9-17 09:58:26 | 显示全部楼层
板子不会坏,倒是驱动器可能会坏
目前在玩STM32,BBB,RPi
回复

使用道具 举报

19

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2013-12-2
在线时间
0 小时
 楼主| 发表于 2014-9-17 10:21:11 | 显示全部楼层
回复【4楼】w0rmis20:
---------------------------------
知道了 谢谢呀
回复

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2014-9-3
在线时间
2 小时
发表于 2014-11-26 22:32:42 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,为什么我用TIM3输出4路PWM时,在主函数里面只调用TIM_SetCompare2(TIM3,250);(PA7),另外三路没有调用时,另外三路的I/O一直输出高电平呢?甚是不解,控制不了电机正反转了啊!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-11-26 23:05:31 | 显示全部楼层
回复【6楼】冬迹:
---------------------------------
你另外三路要不要输出pwm?
如果不要输出,那就设置推挽输出与好了,这样控制要什么电平有什么电平。
如果要,你为何不设置TIM_SetCompare?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2014-9-3
在线时间
2 小时
发表于 2014-11-27 22:20:12 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
回复【7楼】正点原子:
--------------------------------
另外三路也要输出!在主函数我只是用while(1){TIM_SetCompare2(TIM3,250);},其他什么都没有做啊,我的arr=500,TIM_SetCompare2(TIM3,250)可以达到50%的占空比,是正常的,可是其他三路我没有调用TIM_SetCompare1,TIM_SetCompare3,TIM_SetCompare4啊,为何其也一直输出高电平呢?按照你的意思,该怎么设置TIM_SetCompare呢?
回复

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2014-9-3
在线时间
2 小时
发表于 2014-11-27 22:35:25 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
原子哥,可以了,谢谢。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-11-27 23:01:41 | 显示全部楼层
回复【9楼】冬迹:
---------------------------------
恭喜
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2016-10-1
在线时间
8 小时
发表于 2016-10-9 22:21:08 | 显示全部楼层
你好,请教下你最后是如何设置的呢?
回复

使用道具 举报

47

主题

212

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
292
金钱
292
注册时间
2016-1-2
在线时间
80 小时
发表于 2016-10-9 23:21:10 | 显示全部楼层
割风少年110 发表于 2016-10-9 22:21
你好,请教下你最后是如何设置的呢?

这个号 是我以前的老号  抱歉了  我都不记得我是如何设置的了  好久了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-24 01:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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