前段时间做一个项目,需要用到A4988驱动42步进电机,在网上找了很多资料和代码都不能用。
最后找到一个可以用的,不过IO初始化用的是寄存器。
做了一些注释,分享出来。
制作出来的实物图如下:
电路原理图如下:
单片机源程序如下:
- /*
- STM32F103C8T6
- A4988步进驱动 2相4线 42步进电机
- dir:方向控制,1:正转 0:反转
- period:周期(速度 越大越慢)
- steps:脉冲个数(200/圈)
- */
- #include "sys.h"
- #include "delay.h"
- #include "stdio.h"
- #include "usart.h"
- #include "motor.h"
- //实现全步状态下正转一圈,反转一圈,持续一会儿后抱死
- int main(void)
- {
- int i=0;
- uart_init(115200); //串口初始化
- delay_init(); //延时初始化
- MOTOR_Init();
- Step_Micr(1); //1/2/4/8/16
-
- // for(i=0;i<10;i++)
- // {
- // Step_Control(1,1600,400); //正转
- // delay_ms(1000);
- // Step_Control(0,1600,200); //反转
- // delay_ms(1000);
- // }
- // Step_Enable(); //抱死
-
- while(1)
- {
- Step_Control(1,1600,4000); //正转
- }
- }
复制代码
全部程序51hei下载地址:
STM32F103C8T6-A4988驱动+42步进电机.7z
(184.89 KB, 下载次数: 242)
|