你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
肯请大师提供比较完整的步进电机(直流电机)C语言代码
[复制链接]
fangqiu9717
提问时间:2019-4-19 09:32 /
问答
是否解决:
肯请大师提供比较完整的步进电机(直流电机)C语言代码。学生正在学习STM8电机控制程序。想看真正实用的程序(用STM板上按键加电机控制芯片来对电机部分进行控制)。
赞
0
收藏
0
评论
4
分享
发布时间:2019-4-19 09:32
举报
请先
登录
后回答问题
4个回答
mmuuss586
回答时间:2019-4-19 09:44:18
a0a.1 32b0c
你在与非网站搜下,很多的;
赞
0
评论
回复
支持
反对
七哥
回答时间:2019-4-19 12:18:14
a0a.1 32b0c
本帖最后由 toofree 于 2019-4-19 12:45 编辑
步进电机不能叫直流电机。
一般所说的直流电机是指有刷直流电机,磁体固定,线圈在转;
步进电机更像是无刷直流电机,永磁体在转,线圈固定。
用的哪种步进电机和对应的驱动电路?
一般常用的入门学习步进电机有,2相4线4拍,3相4线6拍(或3拍),这两种的驱动电路是完全不同的。
评分
参与人数
1
蝴蝶豆
+3
收起
理由
STMCU
+ 3
查看全部评分
赞
0
评论
回复
支持
反对
ph0330
回答时间:2019-4-21 10:35:54
a0a.1 32b0c
請參考
https://www.stmcu.org.cn/module/forum/thread-616647-1-1.html
评分
参与人数
1
蝴蝶豆
+3
收起
理由
STMCU
+ 3
查看全部评分
赞
0
评论
回复
支持
反对
请叫我小阳
回答时间:2019-4-22 17:22:28
a0a.1 32b0c
写的很菜,用的STD库,但是稍微改一下就能用
/*这是步进电机驱动程序,本程序使用STM8S003F3系列单片机的 【GPIOC】外设
* 需要占用的GPIO管脚分别是:GPIOC 3~6
* 步进电机逆时针旋转,八拍方式驱动,线序为:A、AB、B、BC、C、CD、D、DA
* 步进电机步脚距7.5/85度,减速比1/85
*/
#include "moto_driver.h"
unsigned int steps = 0;//定义变量:总部步数
void moto_timer_init(void)//使用定时器4,
{
CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4,ENABLE);//使能TIMER4外设时钟
TIM4_DeInit();//恢复TIME4寄存器默认值
TIM4_TimeBaseInit(TIM4_PRESCALER_128,80);//设置预分频数128,,计数器初值256,256/(16M/8/128)= 60.1hz
TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);//向上溢出中断,中断函数向量号为25
TIM4_SetCounter(0x00);//
TIM4_ARRPreloadConfig(ENABLE);
TIM4_Cmd(DISABLE);
//TIM4_Cmd(ENABLE);//使能TIME4,参数ENABLE、DISABLE
//enableInterrupts();//使能中断总开关
}
void moto_pin_init(void)//电机驱动IO初始化,开漏输出:PC3\PC4\PC5\PC6
{
GPIO_DeInit(GPIOC);
GPIO_Init(GPIOC,GPIO_PIN_3,GPIO_MODE_OUT_PP_HIGH_SLOW);
GPIO_Init(GPIOC,GPIO_PIN_4,GPIO_MODE_OUT_PP_HIGH_SLOW);
GPIO_Init(GPIOC,GPIO_PIN_5,GPIO_MODE_OUT_PP_HIGH_SLOW);
GPIO_Init(GPIOC,GPIO_PIN_6,GPIO_MODE_OUT_PP_HIGH_SLOW);
}
void steps_0(void)//步进0:1000
{
GPIO_WriteHigh(GPIOC,GPIO_PIN_3);
GPIO_WriteLow(GPIOC,GPIO_PIN_4);
GPIO_WriteLow(GPIOC,GPIO_PIN_5);
GPIO_WriteLow(GPIOC,GPIO_PIN_6);
}
void steps_1(void)//步进1:1100
{
GPIO_WriteHigh(GPIOC,GPIO_PIN_3);
GPIO_WriteHigh(GPIOC,GPIO_PIN_4);
GPIO_WriteLow(GPIOC,GPIO_PIN_5);
GPIO_WriteLow(GPIOC,GPIO_PIN_6);
}
void steps_2(void)//步进2:0100
{
GPIO_WriteLow(GPIOC,GPIO_PIN_3);
GPIO_WriteHigh(GPIOC,GPIO_PIN_4);
GPIO_WriteLow(GPIOC,GPIO_PIN_5);
GPIO_WriteLow(GPIOC,GPIO_PIN_6);
}
void steps_3(void)//步进3:0110
{
GPIO_WriteLow(GPIOC,GPIO_PIN_3);
GPIO_WriteHigh(GPIOC,GPIO_PIN_4);
GPIO_WriteHigh(GPIOC,GPIO_PIN_5);
GPIO_WriteLow(GPIOC,GPIO_PIN_6);
}
void steps_4(void)//步进4:0010
{
GPIO_WriteLow(GPIOC,GPIO_PIN_3);
GPIO_WriteLow(GPIOC,GPIO_PIN_4);
GPIO_WriteHigh(GPIOC,GPIO_PIN_5);
GPIO_WriteLow(GPIOC,GPIO_PIN_6);
}
void steps_5(void)//步进5:0011
{
GPIO_WriteLow(GPIOC,GPIO_PIN_3);
GPIO_WriteLow(GPIOC,GPIO_PIN_4);
GPIO_WriteHigh(GPIOC,GPIO_PIN_5);
GPIO_WriteHigh(GPIOC,GPIO_PIN_6);
}
void steps_6(void)//步进6:0001
{
GPIO_WriteLow(GPIOC,GPIO_PIN_3);
GPIO_WriteLow(GPIOC,GPIO_PIN_4);
GPIO_WriteLow(GPIOC,GPIO_PIN_5);
GPIO_WriteHigh(GPIOC,GPIO_PIN_6);
}
void steps_7(void)//步进7:1001
{
GPIO_WriteHigh(GPIOC,GPIO_PIN_3);
GPIO_WriteLow(GPIOC,GPIO_PIN_4);
GPIO_WriteLow(GPIOC,GPIO_PIN_5);
GPIO_WriteHigh(GPIOC,GPIO_PIN_6);
}
void moto_off(void)//刹车停止电机运转函数
{
TIM4_Cmd(DISABLE);//关闭定时器
TIM4_SetCounter(0x00);//清零定时器计数值
GPIO_WriteHigh(GPIOC,GPIO_PIN_3);//刹车堵转
GPIO_WriteHigh(GPIOC,GPIO_PIN_4);
GPIO_WriteHigh(GPIOC,GPIO_PIN_5);
GPIO_WriteHigh(GPIOC,GPIO_PIN_6);
}
void moto_on(void)//启动电机运转函数
{
TIM4_SetCounter(0x00);//清零定时器计数值
TIM4_Cmd(ENABLE);//开启定时器
}
void moto_run(char steps_)//电机单步运转函数,传入总步数
{
switch(steps_ % 8)//单步细分
{
case 0:steps_0();break;
case 1:steps_1();break;
case 2:steps_2();break;
case 3:steps_3();break;
case 4:steps_4();break;
case 5:steps_5();break;
case 6:steps_6();break;
case 7:steps_7();break;
}
}
void moto_init(void)
{
steps = 0;
moto_pin_init();
moto_timer_init();
}
复制代码
评分
参与人数
1
蝴蝶豆
+3
收起
理由
STMCU
+ 3
查看全部评分
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
你在与非网站搜下,很多的;
步进电机不能叫直流电机。
一般所说的直流电机是指有刷直流电机,磁体固定,线圈在转;
步进电机更像是无刷直流电机,永磁体在转,线圈固定。
用的哪种步进电机和对应的驱动电路?
一般常用的入门学习步进电机有,2相4线4拍,3相4线6拍(或3拍),这两种的驱动电路是完全不同的。
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分