OpenEdv-开源电子网

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

stm32f103驱动57步进电机

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2015-9-30
在线时间
0 小时
发表于 2015-9-30 20:15:51 | 显示全部楼层 |阅读模式
5金钱
我用stm32f103开发板驱动57型步进电机,2相4线的,都连接好了电路,用led流水灯的程序修改了驱动步进电机可以连续动作,但是怎么实现步进电机的反转呢?正转一定距离之后,静止10s然后反向。
现有程序如下:
[mw_shl_code=c,true]void Delay(uint32_t Time) { uint32_t i; i = 0; while (Time--) { for (i = 0; i < 5000; i++); } } int main(void) { RCC_Configuration(); LCD_Init(); LCD_ShowString(60, 80, "aaaa111aaz", BLUE, BLACK); LCD_ShowString(90, 110, "LED TEST", BLUE, BLACK); LCD_ShowString(60, 140, "www.paccau.com", BLUE, BLACK); LED_Configuration(); while(1) { if((GPIOC->IDR&(1<<13))!=0) { GPIO_SetBits(GPIOD, GPIO_Pin_8); } else { GPIO_ResetBits(GPIOD, GPIO_Pin_8); GPIO_SetBits(GPIOD, GPIO_Pin_12); Delay(1); GPIO_ResetBits(GPIOD, GPIO_Pin_12); continue; } } }[/mw_shl_code]

最佳答案

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

回复【6楼】laidaihua: --------------------------------- 谢谢您的回复,这个问题解决了。现在有一个新的问题在我另一个帖子中,程序本身编译没有问题,但是烧录之后电机没有动作,使用mdk进行了硬件仿真,设置了断点,结果显示在帖子的图片中,(这里回复添加不了图片)你能帮忙解决一下吗
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2015-9-30
在线时间
0 小时
 楼主| 发表于 2015-9-30 20:15:52 | 显示全部楼层
回复【6楼】laidaihua:
---------------------------------
谢谢您的回复,这个问题解决了。现在有一个新的问题在我另一个帖子中,程序本身编译没有问题,但是烧录之后电机没有动作,使用mdk进行了硬件仿真,设置了断点,结果显示在帖子的图片中,(这里回复添加不了图片)你能帮忙解决一下吗
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-9-30 21:58:48 | 显示全部楼层
没加驱动器么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2015-9-30
在线时间
0 小时
 楼主| 发表于 2015-9-30 23:30:23 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
有驱动器的,我只需要用单片机控制脉冲和方向即可,我在程序中添加GPIO_ResetBits(GPIOD, GPIO_Pin_13);//PD13为方向
或者GPIO_SetBits(GPIOD, GPIO_Pin_13);  语句进行换向,检测到的PD13端口都是高电平,电机都是同一方向动作,为什么呢?
回复

使用道具 举报

1

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2015-6-6
在线时间
2 小时
发表于 2015-10-1 00:34:14 | 显示全部楼层
程序写错了!
else里面的后三行应搬到花括号外面去,你放在里面的话,当然就只有一个方向能动了。。
三更有梦书当枕,千里怀人月在峰!
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2015-9-30
在线时间
0 小时
 楼主| 发表于 2015-10-1 10:10:31 | 显示全部楼层
回复【4楼】laidaihua:
---------------------------------
这个程序是电机连续动作的,没有加方向端的控制,PD12是脉冲端,PD13是方向端。现在程序是控制使电机在按键的情况下连续运行,我在程序中添加GPIO_ResetBits(GPIOD, GPIO_Pin_13);//PD13为方向 
或者GPIO_SetBits(GPIOD, GPIO_Pin_13);  语句进行换向,检测到的PD13端口都是高电平,电机都是同一方向动作,为什么呢?
回复

使用道具 举报

1

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2015-6-6
在线时间
2 小时
发表于 2015-10-1 22:59:18 | 显示全部楼层
回复【5楼】coco1990:
---------------------------------
你的那个PD13的控制语句加在什么地方我并不知道,当然也就无从知道问题的原因了。
希望你问什么,就贴什么程序。而不要贴这个程序,问那个问题,这样混乱的逻辑,别人是无法回答的。。
三更有梦书当枕,千里怀人月在峰!
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-3-28
在线时间
6 小时
发表于 2016-4-27 11:26:34 | 显示全部楼层
请问你的问题解决了么,我现在的情况跟你的差不多,对脉冲端、方向端进行控制电机连续运行时,我在程序中添加GPIO_ResetBits(GPIOA, GPIO_Pin_13);//PA13为方向 控制端,或GPIO_SetBits(GPIOA, GPIO_Pin_13);  电机都是一个方向转动,为什么呢??
回复

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-7-12
在线时间
4 小时
发表于 2016-7-22 20:02:49 | 显示全部楼层
亲,用L298N怎么接步进电机啊,L298N的输入都是什么~~
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 08:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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