目录
一、资源说明
单片机型号 | 测试条件 | 模块名称 | 代码功能 |
STC89C52RC | 1.晶振11.0592M | DRV8833 模块 | 单片机驱动DRV8833 模块按键控制步进电机正反转 |
STM32F103C8T6 |
| DRV8833 模块 |
二、基本参数
1、参数
2、引脚说明
DRV8833 模块 | 引脚说明 |
AIN1 | 信号输入1 |
AIN2 | 信号输入2 |
SLP | 睡眠引脚(低电平睡眠) |
BIN2 | 信号输入3 |
BIN1 | 信号输入4 |
FLT | 错误状态输出 |
GND | 电源GND(需要与单片机共地) |
VM | 电源正极 此处用8V |
BS | 电流控制B |
AS | 电流控制A |
BOUT1 | B- |
BOUT2 | B+ |
AOUT2 | A- |
AOUT1 | A+ |
三、驱动说明
DRV8833模块与ULN2003输入引脚一致 ,所以此处用的是ULN2003程序改
步进电机驱动时序
对应程序:
//顺时针逆时针选择
void Swerve(uint8_t F_Dir)
{
if(F_Dir)
{
switch(MOTO_delay0)
{
*
case(1):MOTOA = 0; MOTOB = 1; MOTOC = 1; MOTOD = 1;break;
case(2):MOTOA = 1; MOTOB = 0; MOTOC = 1; MOTOD = 1;break;
case(3):MOTOA = 1; MOTOB = 1; MOTOC = 0; MOTOD = 1;break;
case(4):MOTOA = 1; MOTOB = 1; MOTOC = 1; MOTOD = 0;break;
}
}
else
{
switch(MOTO_delay0)
{
case(1):MOTOA = 1; MOTOB = 1; MOTOC = 1; MOTOD = 0;break;
case(2):MOTOA = 1; MOTOB = 1; MOTOC = 0; MOTOD = 1;break;
case(3):MOTOA = 1; MOTOB = 0; MOTOC = 1; MOTOD = 1;break;
case(4):MOTOA = 0; MOTOB = 1; MOTOC = 1; MOTOD = 1;break;
}
}
}
四、部分代码说明
1、接线说明
需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改
1.1、STC89C52RC+DRV8833模块
//输入信号引脚
sbit MOTOA=P1^0; //IN1
sbit MOTOB=P1^1; //IN2
sbit MOTOC=P1^2; //IN3
sbit MOTOD=P1^3; //IN4
//按键引脚
sbit KEY_Foreward = P1^4; //正转
sbit KEY_Reversal = P1^5; //反转
1.2、STM32F103C8T6+DRV8833模块
//输入信号引脚
#define MOTOA_GPIO_PORT GPIOA /* MOTOA端口 */
#define MOTOA_GPIO_CLK RCC_APB2Periph_GPIOA /* MOTOA端口时钟 */
#define MOTOA_GPIO_PIN GPIO_Pin_0
#define MOTOB_GPIO_PORT GPIOA /* MOTOB端口 */
#define MOTOB_GPIO_CLK RCC_APB2Periph_GPIOA /* MOTOB端口时钟 */
#define MOTOB_GPIO_PIN GPIO_Pin_1
#define MOTOC_GPIO_PORT GPIOA /* MOTOC端口 */
#define MOTOC_GPIO_CLK RCC_APB2Periph_GPIOA /* MOTOC端口时钟 */
#define MOTOC_GPIO_PIN GPIO_Pin_2
#define MOTOD_GPIO_PORT GPIOA /* MOTOD端口 */
#define MOTOD_GPIO_CLK RCC_APB2Periph_GPIOA /* MOTOD端口时钟 */
#define MOTOD_GPIO_PIN GPIO_Pin_3
//按键引脚
#define Foreward_GPIO_CLK RCC_APB2Periph_GPIOA
#define Foreward_GPIO_PORT GPIOA
#define Foreward_GPIO_PIN GPIO_Pin_5
//KEY2
#define Reversal_GPIO_CLK RCC_APB2Periph_GPIOA
#define Reversal_GPIO_PORT GPIOA
#define Reversal_GPIO_PIN GPIO_Pin_6
五、基础知识学习与相关资料下载
- STC89C52RC程序下载 直戳跳转
- STM32F103C8T6程序下载
- 串口下载 直戳跳转
- ST-LINK下载 直戳跳转
- J-LINK下载 直戳跳转
- DAP-LINK下载 直戳跳转
六、视频效果展示与程序资料获取
视频连接 直戳跳转
资料获取 ( 滑到最后添加群号看公告免费获取)
七、项目所有材料清单
STC89C52RC驱动方案 | 图片 | STM32F103C8T6驱动方案 | 图片 | 备注 K_A07_003 |
STC89C52RC系统板X1 | ![]() | STM32F103C8T6系统板X1 | ![]() |
|
DRV8833模块x1 | ![]() | DRV8833模块x1 | ![]() | |
步进电机x1 | ![]() | 步进电机x1 | ![]() | |
Micro USB线X1 | ![]() | Micro USB线X2 | ![]() | |
母母杜邦线X12 | ![]() | 母母杜邦线X12 | ![]() | |
J-LINK下载器 | ![]() |
八、注意事项
- VCC GND请勿接反,接反易烧
- 显示异常时,排除接线接触不良
- 电机抖动 也可能是接线接触不良引起 需要排查
九、接线表格
单片机型号 | 模块 | 对应引脚(上:模块引脚 下:单片机引脚) | |||||
STC89C52RC | DRV8833模块 | AIN1 | AIN2 | BIN2 | BIN1 | SLP | GND |
P1.0 | P1.1 | P1.2 | P1.3 | 接5V | GND | ||
按键模块 | KEY_L | KEY_R | GND | ||||
P1.4 | P1.5 | GND | |||||
STM32F103C8T6 | DRV8833模块 | AIN1 | AIN2 | BIN2 | BIN1 | SLP | GND |
PA0 | PA1 | PA2 | PA3 | 接5V | GND | ||
按键模块 | KEY_L | KEY_R | GND | ||||
PA5 | PA6 | GND |