你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
你在与非网站搜下,很多的;
步进电机不能叫直流电机。
一般所说的直流电机是指有刷直流电机,磁体固定,线圈在转;
步进电机更像是无刷直流电机,永磁体在转,线圈固定。
用的哪种步进电机和对应的驱动电路?
一般常用的入门学习步进电机有,2相4线4拍,3相4线6拍(或3拍),这两种的驱动电路是完全不同的。
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分