OpenEdv-开源电子网

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

stm32如何精确控制发射的脉冲数呢?就是我要1000个就发1000个

[复制链接]

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2019-1-3
在线时间
24 小时
发表于 2019-1-11 12:00:47 | 显示全部楼层 |阅读模式
本姑凉做项目,需要控制步进电机走到指定位置,pwm脉冲个数决定了电机走的距离,我现在能控制电机转速和方向,但不知道如何控制发射的脉冲个数,网上有说用滴答定时器,有说用计数器,有说用外部中断的,都没看明白,望大神指点,谢谢!!!


微信图片_20190111120008.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

330

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2294
金钱
2294
注册时间
2016-5-21
在线时间
954 小时
发表于 2019-1-11 12:27:34 | 显示全部楼层
使用两个定时器,内部连接,一个PWM输出,一个计数然后开启溢出中断,就可以准确控制脉冲个数了
回复 支持 0 反对 1

使用道具 举报

2

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2019-1-15
在线时间
41 小时
发表于 2019-1-15 10:30:13 | 显示全部楼层
用一个引脚去检测pwm,如果pwm频率很高的话太费cpu。我建议和楼上一样用主从定时器,主定时器输出pwm,从定时器内部联立。 微信截图_20190115102525.png
回复 支持 1 反对 0

使用道具 举报

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2019-1-3
在线时间
24 小时
 楼主| 发表于 2019-1-11 12:45:05 | 显示全部楼层
xxssl 发表于 2019-1-11 12:27
使用两个定时器,内部连接,一个PWM输出,一个计数然后开启溢出中断,就可以准确控制脉冲个数了

内部连接是什么意思呢
回复 支持 反对

使用道具 举报

12

主题

330

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2294
金钱
2294
注册时间
2016-5-21
在线时间
954 小时
发表于 2019-1-11 12:47:24 | 显示全部楼层
何来 发表于 2019-1-11 12:45
内部连接是什么意思呢

主定时器和从定时器
回复 支持 反对

使用道具 举报

0

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2019-1-9
在线时间
2 小时
发表于 2019-1-11 13:05:22 | 显示全部楼层
居然有妹子
回复 支持 反对

使用道具 举报

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2019-1-3
在线时间
24 小时
 楼主| 发表于 2019-1-11 13:33:17 | 显示全部楼层

请叫我嵌入式花木兰霸王花
回复 支持 反对

使用道具 举报

5

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2018-6-13
在线时间
63 小时
发表于 2019-1-11 13:47:02 | 显示全部楼层
小jiejie(姐姐), 小jiejie(姐姐)会了教我
回复 支持 反对

使用道具 举报

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2019-1-3
在线时间
24 小时
 楼主| 发表于 2019-1-11 14:01:24 | 显示全部楼层
还不够 发表于 2019-1-11 13:47
小jiejie(姐姐), 小jiejie(姐姐)会了教我

放心,等我研究出来了带你飞
回复 支持 反对

使用道具 举报

5

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2018-6-13
在线时间
63 小时
发表于 2019-1-11 15:03:24 | 显示全部楼层
何来 发表于 2019-1-11 14:01
放心,等我研究出来了带你飞

竟然遇到个重庆妹子    而且还是做软件
回复 支持 反对

使用道具 举报

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2019-1-3
在线时间
24 小时
 楼主| 发表于 2019-1-11 15:22:09 | 显示全部楼层
还不够 发表于 2019-1-11 15:03
竟然遇到个重庆妹子    而且还是做软件

本小姑硬件软件都做
回复 支持 反对

使用道具 举报

5

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2018-6-13
在线时间
63 小时
发表于 2019-1-11 15:23:57 | 显示全部楼层
何来 发表于 2019-1-11 15:22
本小姑硬件软件都做

厉害   可以抱大腿么
回复 支持 反对

使用道具 举报

4

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2017-6-14
在线时间
72 小时
发表于 2019-1-11 15:29:19 | 显示全部楼层
还不够 发表于 2019-1-11 15:23
厉害   可以抱大腿么

妹子大腿你也敢乱抱,   


一个PWM输出 ,用另外一个脚做输入捕获不就可以检自己输入的PWM的个数了吗
回复 支持 反对

使用道具 举报

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2019-1-3
在线时间
24 小时
 楼主| 发表于 2019-1-11 16:29:21 | 显示全部楼层
大道一条 发表于 2019-1-11 15:29
妹子大腿你也敢乱抱,   

你说的那个是检测外部脉冲个数吧?我要检测的是输出的pwm的个数,达到指定个数后就停止输出,网上看了些资料,主要是没程序加注释,恼火得很,嗯是吆不倒台哦!!!
回复 支持 反对

使用道具 举报

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2019-1-3
在线时间
24 小时
 楼主| 发表于 2019-1-11 16:30:18 | 显示全部楼层
还不够 发表于 2019-1-11 15:23
厉害   可以抱大腿么

老娘的腿贼细
回复 支持 反对

使用道具 举报

5

主题

133

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1371
金钱
1371
注册时间
2018-3-5
在线时间
741 小时
发表于 2019-1-11 16:31:33 | 显示全部楼层
http://www.openedv.com/posts/list/41832.htm
这个可以,不过输出少量脉冲的时候会少发一个脉冲,修一下就行 11.png
回复 支持 反对

使用道具 举报

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2019-1-3
在线时间
24 小时
 楼主| 发表于 2019-1-11 16:39:17 | 显示全部楼层
nnqtdf 发表于 2019-1-11 16:31
http://www.openedv.com/posts/list/41832.htm
这个可以,不过输出少量脉冲的时候会少发一个脉冲,修一下 ...

有库函数版本的吗哥?
这是寄存器版本的,用着不习惯,就像女生站着尿尿一样
回复 支持 反对

使用道具 举报

4

主题

349

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1046
金钱
1046
注册时间
2017-5-19
在线时间
335 小时
发表于 2019-1-11 17:10:19 | 显示全部楼层
牛,差点就把公司用的程序就传上来了,幸好控制住了自己
回复 支持 反对

使用道具 举报

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2019-1-3
在线时间
24 小时
 楼主| 发表于 2019-1-11 17:26:56 | 显示全部楼层
wxjhby 发表于 2019-1-11 17:10
牛,差点就把公司用的程序就传上来了,幸好控制住了自己

1565077259@qq.com   谢谢
回复 支持 反对

使用道具 举报

5

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2018-6-13
在线时间
63 小时
发表于 2019-1-12 07:49:48 | 显示全部楼层
何来 发表于 2019-1-11 16:29
你说的那个是检测外部脉冲个数吧?我要检测的是输出的pwm的个数,达到指定个数后就停止输出,网上看了些 ...

你找下  输入捕捉的代码  就是一个引脚用来发PWM波    一个引脚来测你发出来的 PWM信号    在单片机这端将这两个引脚短上就可以了
回复 支持 反对

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10831
金钱
10831
注册时间
2014-6-12
在线时间
1036 小时
发表于 2019-1-12 09:09:19 | 显示全部楼层
不如直接加位置反馈效果好,数脉冲控制有失步,误差积累问题控制精度不行。
回复 支持 反对

使用道具 举报

0

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2019-1-9
在线时间
2 小时
发表于 2019-1-12 13:41:33 | 显示全部楼层
何来 发表于 2019-1-11 13:33
请叫我嵌入式花木兰霸王花

回复 支持 反对

使用道具 举报

4

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2017-6-14
在线时间
72 小时
发表于 2019-1-14 09:07:00 | 显示全部楼层
何来 发表于 2019-1-11 16:29
你说的那个是检测外部脉冲个数吧?我要检测的是输出的pwm的个数,达到指定个数后就停止输出,网上看了些 ...

那你用外部中断吧,外部中断次数达到了,你就关闭PWM的使能。
回复 支持 反对

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2013-12-25
在线时间
18 小时
发表于 2019-1-17 22:05:57 | 显示全部楼层
ls的各位嵌入式屌丝,说不定是个抠脚大汉哦。。。
回复 支持 反对

使用道具 举报

3

主题

93

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
459
金钱
459
注册时间
2014-3-7
在线时间
51 小时
发表于 2019-1-18 08:09:31 | 显示全部楼层
是的 最简单的就是一个定时器输出 PWM, 然后用另一个定时器配置脉冲输入计数功能, 就行了.  如果单片机内部不能连接, IO连接起来也是行的.
STM32?步进电机开发板
http://yonyon.taobao.com
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2018-6-24
在线时间
3 小时
发表于 2019-1-18 08:51:38 | 显示全部楼层
何来 发表于 2019-1-11 15:22
本小姑硬件软件都做

老乡见老乡,两眼泪汪汪。。。重庆+1,带带我,我是新手
回复 支持 反对

使用道具 举报

0

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2013-11-12
在线时间
24 小时
发表于 2019-1-19 10:04:08 | 显示全部楼层
定时器加输入捕获
回复 支持 反对

使用道具 举报

7

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2011-8-8
在线时间
50 小时
发表于 2019-1-19 11:51:10 | 显示全部楼层
看你图片发的是一个步进电机,这个如果想要精准的控制,还是加编码器吧,软件上的这个计数那个计数,实际上问题不在这里。工业中干扰很大,实际上100k-200k已经是上限了,再高,都是硬件保护,差分 隔离,但是基本上都还是会丢步,无解。总不能不让旁边的设备不开机吧。只有加外部硬件去计数,做成闭环控制。光栅尺太贵,一般配伺服,就编码器吧 1000线的就行!
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2017-7-25
在线时间
36 小时
发表于 2019-7-24 19:28:49 | 显示全部楼层
想问下各位大神?有谁搞定了?效果如何?有否请教下
回复 支持 反对

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2019-7-24 20:05:45 | 显示全部楼层
CodeHamal 发表于 2019-7-24 19:28
想问下各位大神?有谁搞定了?效果如何?有否请教下

http://www.openedv.com/forum.php ... d=104491&extra=
功能7就是
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2017-7-25
在线时间
36 小时
发表于 2019-7-24 23:39:25 | 显示全部楼层
nashui_sx 发表于 2019-7-24 20:05
http://www.openedv.com/forum.php?mod=viewthread&tid=104491&extra=
功能7就是

非常感谢, 这个例程非常具有参考意义;
目前在调研利用stm32是否适合做一个简单的步进驱动器的
控制逻辑;我先学习下;频率要求在1-2Khz左右;有问题再向您请教;
回复 支持 反对

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2019-7-24 23:53:48 | 显示全部楼层
本帖最后由 nashui_sx 于 2019-7-25 11:26 编辑
CodeHamal 发表于 2019-7-24 23:39
非常感谢, 这个例程非常具有参考意义;
目前在调研利用stm32是否适合做一个简单的步进驱动器的
控制逻 ...

那个很旧了,也是测试用的,能用就是out函数写的乱
后来改成这个了,还有那个初始化的时候arr手误写错10倍 造成小于10个脉冲有点问题,你改改就好了
  1. void TIM2_TIM3_PulseOutput_Out(u16 cycle, u8 gao,u16 pulse_num)//cycle周期  gao占空比高电平   pulse_num个数
  2. {
  3.   if(pulse_num)
  4.   {
  5.                         TIM_SetAutoreload(TIM2, cycle*pulse_num*(TIM3->PSC+1)/(TIM2->PSC+1));//设置不一样时候这样计算,模板设置一样
  6.                         TIM_SetAutoreload(TIM3, cycle-1);
  7.                         TIM_SetCompare1  (TIM3, cycle*(100-gao)/100); //设置PWM占空比
  8.                         TIM_Cmd(TIM2,ENABLE);//使能TIM2
  9.   }
  10. }
复制代码
回复 支持 反对

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2019-7-25 10:36:11 | 显示全部楼层
本帖最后由 nashui_sx 于 2019-7-25 10:38 编辑
CodeHamal 发表于 2019-7-24 23:39
非常感谢, 这个例程非常具有参考意义;
目前在调研利用stm32是否适合做一个简单的步进驱动器的
控制逻 ...

回复为啥还要审核,难道我中毒了@正点原子 11111.jpg

回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2017-7-25
在线时间
36 小时
发表于 2019-7-26 00:52:35 | 显示全部楼层
nashui_sx 发表于 2019-7-24 23:53
那个很旧了,也是测试用的,能用就是out函数写的乱
后来改成这个了,还有那个初始化的时候arr手误写错10 ...

好的, 还没有时间调试验证;下周我调试验证下, 有成果反馈大家;
回复 支持 反对

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2019-7-30 11:25:13 | 显示全部楼层
CodeHamal 发表于 2019-7-26 00:52
好的, 还没有时间调试验证;下周我调试验证下, 有成果反馈大家;

新开一贴专门介绍固定脉冲你可以看看http://www.openedv.com/forum.php?mod=viewthread&tid=297375&extra=
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2017-7-25
在线时间
36 小时
发表于 2019-8-2 22:20:55 | 显示全部楼层
nashui_sx 发表于 2019-7-30 11:25
新开一贴专门介绍固定脉冲你可以看看http://www.openedv.com/forum.php?mod=viewthread&tid=297375&extra ...

好的;上周还没投入这个事情, 天天忙的要死;
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2019-1-7
在线时间
7 小时
发表于 2019-8-5 16:48:31 | 显示全部楼层
你那个输出固定数量的脉冲做好了吗
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2017-7-25
在线时间
36 小时
发表于 2019-8-7 10:32:07 | 显示全部楼层
嵌入式ings 发表于 2019-8-5 16:48
你那个输出固定数量的脉冲做好了吗

还没投入呢;这个项目还没启动呢;不过快了,有进展我跟你说
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2019-1-7
在线时间
7 小时
发表于 2019-8-12 15:51:11 | 显示全部楼层
ok,加个qq吧 :3368434070
回复 支持 反对

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
165
金钱
165
注册时间
2018-1-18
在线时间
22 小时
发表于 2020-11-25 11:32:47 | 显示全部楼层
感谢帖子里大佬提供资料链接,学习了
回复 支持 反对

使用道具 举报

18

主题

151

帖子

0

精华

高级会员

Rank: 4

积分
508
金钱
508
注册时间
2020-4-22
在线时间
241 小时
发表于 2020-11-26 17:24:41 | 显示全部楼层
抠脚大汉已验证
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2021-4-24
在线时间
5 小时
发表于 2021-6-12 16:55:25 | 显示全部楼层
小姐姐,那个脉冲的个数如设置呢
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-22 16:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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