注:本程序已验证可用,但只对本店模块做过适配测试,其他模块我们没法保证一定能用
实物参考链接 直戳跳转
一、资源说明
二、基本参数
1、参数
2、引脚说明
三、驱动说明
DRV8825模块与A4988模块很类似,程序直接用A4988模块程序
SETP时序
对应程序:
51用定时器来产生PWM信号
//定时器0中断服务函数
void tim0() interrupt 1
{
TL0 = 0xF7; //设置定时初始值
TH0 = 0xFF; //设置定时初始值10US
times++;
if(times<=Speed)
{
SETP=1;
}
else
{
SETP=0;
}
}
细分说明
程序
此处用的是P1的1、2 、3引脚
#define A4988_MS P1
#define Full_Step 0x00
#define Half_Step 0x01
#define Quarter_Step 0x02
#define Eighth_Step 0x03
#define Sixteenth_Step 0x07
//配置细分函数
void Excitation_Mode(uint8_t F_Step)
{
A4988_MS=(A4988_MS&0xf1)|(F_Step<<1);
}
四、部分代码说明
1、接线说明
需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改
1.1、STC89C52RC+DRV8825模块
//A4988模块引脚定义
sbit ENABLE=P1^0;
sbit MS1=P1^1;
sbit MS2=P1^2;
sbit MS3=P1^3;
sbit SETP=P1^4;
sbit DIR=P1^5;
//按键引脚定义
sbit K_Syntropy=P2^0; //顺时针
sbit K_Reverse =P2^1; //逆时针
1.2、STM32F103C8T6+DRV8825模块
//A4988模块引脚定义
// TIM3 输出比较通道1 SETP引脚
#define GENERAL_TIM_CH1_GPIO_CLK RCC_APB2Periph_GPIOA
#define GENERAL_TIM_CH1_PORT GPIOA
#define GENERAL_TIM_CH1_PIN GPIO_Pin_6
//GPIOA
#define A4988_ENABLE GPIO_Pin_0 //
#define A4988_MS1 GPIO_Pin_1 //
#define A4988_MS2 GPIO_Pin_2 //
#define A4988_MS3 GPIO_Pin_3 //
#define A4988_DIR GPIO_Pin_4 //
//GPIOA //按键引脚定义
#define K_Syntropy GPIO_Pin_5 // #define K_Reverse GPIO_Pin_7 //
五、基础知识学习
STC89C52RC程序下载 直戳跳转
STM32F103C8T6程序下载
1、串口下载 直戳跳转
2、ST-LINK下载 直戳跳转
3、J-LINK下载 直戳跳转
4、DAP-LINK下载 直戳跳转
六、视频效果展示与程序资料获取
实物参考链接 直戳跳转
七、注意事项
1、VCC GND请勿接反,接反易烧
2、显示异常时,排除接线接触不良
3、电机抖动线且电流很大 先断电再排查步进电机接线顺序
4、电机抖动 也可能是接线接触不良引起 需要排查
5、电机抖动 也可是电流不适配原因 可调电位器调节电流大小
八、接线说明
可参考程序main.c最上面接线说明