OpenEdv-开源电子网

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

请教一下,在使用DM320驱动器控制42步进电机时,遇到了一些问题

[复制链接]

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
发表于 2021-4-7 10:54:38 | 显示全部楼层 |阅读模式
1金钱
请教一下,在使用DM320驱动器控制42步进电机时,遇到了一些问题,通电后,电机可以正常锁死,但是运行程序时,电机不动,没反应。
  1. sbit PUL = P3^1;
  2. sbit EN  = P2^7;
  3. sbit DIR = P3^0;


  4. void step_pulse(uint16 speed)
  5. {
  6.     PUL = 0;
  7.     msDelay(speed);
  8.     PUL = 1;
  9.     msDelay(speed);
  10. }


  11. void main()
  12. {
  13.     unsigned char idata i=0;
  14.    
  15.     init_f380();
  16.     init_para();

  17.         Buf_Reci[13]=0;
  18.     Buf_Reci[36]=0;
  19.         Buf_Reci[43]=0;
  20.     EN=1;
  21.         DIR=1;
  22.     while(1)
  23.     {
  24.      step_pulse(500);
  25.     }
  26. }
复制代码
这是相关的代码,大家帮我看一看,程序方面有没有问题

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

2147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4894
金钱
4894
注册时间
2015-1-10
在线时间
612 小时
发表于 2021-4-7 13:48:49 | 显示全部楼层
你这个代码哪里相关了?电机不转的时候抖不抖
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-4-7 14:36:02 | 显示全部楼层
阿侑kevin 发表于 2021-4-7 13:48
你这个代码哪里相关了?电机不转的时候抖不抖

void step_pulse(uint16 speed)
{
    PUL = 0;
    msDelay(speed);
    PUL = 1;
    msDelay(speed);
}
这个就是运行代码,电机只响,不动
回复

使用道具 举报

0

主题

6

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2020-7-25
在线时间
114 小时
发表于 2021-4-7 16:01:41 | 显示全部楼层
帮顶      
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-4-7 16:05:09 | 显示全部楼层

谢谢兄弟,不知道问题出在哪了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2021-4-8 01:57:09 | 显示全部楼层

看看各个信号正常不?
1,应该有EN使能信号。
2,CLK时钟应该有一个范围,一般不会超过100Khz,看看时钟是不是频率太高了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

11

主题

2147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4894
金钱
4894
注册时间
2015-1-10
在线时间
612 小时
发表于 2021-4-8 14:06:12 | 显示全部楼层
本帖最后由 阿侑kevin 于 2021-4-8 14:07 编辑
支持者2400 发表于 2021-4-7 14:36
void step_pulse(uint16 speed)
{
    PUL = 0;

要是你用的delay时基是ms,那是你频率太低,电机堵转了,才1Hz
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

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

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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