使用STM32F103VBT6开发的步进电机驱动程序

[复制链接]
7984|16
 楼主| 5509 发表于 2012-8-16 21:02 | 显示全部楼层 |阅读模式
使用STM32F103VBT6开发的步进电机驱动程序,产生脉冲与方向信号,支持限位开关。支持串口命令行式控制。同时完成了DMA,ADC转换功能

stm32_setpmotor.part01.rar

1.91 MB, 下载次数: 1303

stm32_setpmotor.part02.rar

1.67 MB, 下载次数: 1396

sidly 发表于 2013-3-5 14:45 | 显示全部楼层
非常感谢
hisungao 发表于 2013-3-5 17:17 | 显示全部楼层
可以看看了
Simon21ic 发表于 2013-3-5 20:54 来自手机 | 显示全部楼层
能和USB一起用不?
handlike 发表于 2013-3-5 22:02 | 显示全部楼层
兄弟没有原理图吗?要是有图看程序就更亲切了。
Simon21ic 发表于 2013-3-6 03:10 | 显示全部楼层
handlike 发表于 2013-3-5 22:02
兄弟没有原理图吗?要是有图看程序就更亲切了。

呵呵,确实没看,只是随便问问,之前在新塘的时候倒是做过一个步进电机库,使用USB接口控制
Simon21ic 发表于 2013-3-6 03:39 | 显示全部楼层
既然ZL说了偶没看资料,偶就随便看了一下,没多少时间,只是浏览一下而已
不过没怎么看懂,不进电机的加速曲线都没看到,另外,貌似在step过程中,程序要等到step到位后才返回?

偶也来秀一下不进电机的代码,所有调用非阻塞,同时运行4个(不同参数的4个电机一起转,MCU的PWM数量限制,理论上按照轮询一次的时间,接十几个估计没问题),USB轮询也是非阻塞(所以不影响电机驱动)。
main函数中,初始化玩之后,在while(1)中:
// mc fsm: poll mc_module and poll each mc
mc_module_poll();               // 步进电机模块轮询,处理步进电机类事件(影响所有步进电机的事件)
for (uint8_t i = 0; i < dimof(mc); i++)
{
        mc_poll(&mc);        // 轮询不进电机实例
}
设置电机目标位置,同样非阻塞:
mc_set_pos(&mc, target_pos);
这样的设计的好处是,可以外接不同的电机,电机可以有不同的运行速度设置和不同的响应速度设置,但是,电机驱动库不用做任何修改。一个电机,用一个mc_info_t结构就可以描述,加速曲线,2路驱动相位差等参数,都只是这个结构中的成员。
内部代码只秀一段,set_target_pos(设置电机的目标位置):
// set the target position
void mc_set_pos(struct mc_info_t *mc, mc_pos_t pos)
{
        mc->step_target = pos;
        mc->cur_speed = mc_calculate_next_speed(mc);
        if (!mc->cur_speed)
        {
                mc->delay_start_us = mc_module_tick_cnt_us;
                mc-> cur_speed_change_step = 0;
        }
}
lzq1804 发表于 2013-3-12 16:56 | 显示全部楼层
Simon21ic 发表于 2013-3-6 03:10
呵呵,确实没看,只是随便问问,之前在新塘的时候倒是做过一个步进电机库,使用USB接口控制 ...

我现在接触USB接口控制步进电机,遇到很多不懂的地方,能把你这个例程,发我邮箱707543624@qq.com吗?
供我学习参考,谢谢。
035197_X 发表于 2013-7-26 20:01 | 显示全部楼层
也在学习这个!
13365336679 发表于 2013-7-26 23:56 | 显示全部楼层
能上传份图纸吗?没怎么看懂代码。
hkcj 发表于 2013-7-27 08:56 | 显示全部楼层
把原理图弄上来  这样大家可以分析分析   先顶一个  
litao12423 发表于 2013-11-27 14:50 | 显示全部楼层
感谢lz分享,顶一个~~~~~~
woodymusic 发表于 2014-2-3 13:37 | 显示全部楼层
看看吧,不知道有没有需要的东西。。。。
zjfan 发表于 2015-2-6 10:36 | 显示全部楼层
非常感谢!
wuxizhiyan 发表于 2015-4-20 08:58 | 显示全部楼层
mark一下
cuijinyi 发表于 2015-5-27 14:52 | 显示全部楼层
没有加减速
xia_318 发表于 2015-7-3 16:32 | 显示全部楼层
谢谢共享,我也学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

122

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部