STM32F103控制DRV8833驱动一个两相步进电机(输出互补方波)+ 电机不转的原因总结

STM32F103控制DRV8833驱动芯片驱动一个两相步进电机(输出互补方波)

前言

本文主要以两相步进电机为例,为总结使用
电机规格:最大电压5V 最大电流2A 两相步进电机
主控芯片:STM32F103C8T6
驱动芯片:DRV8833双H桥

DRV8833:(后面补充,记得!!!)

使用:

OUT1——A+;OUT2——A-;OUT3——B+;OUT4——B-

INT1——PB6(方向) ;INT2——PA9 (PWM);

INT3——PA8(PWM);INT4——PB7(方向);

SLEEP——PB3(拉高)

VCC——5v

GND——接地

代码:

main.c

//2024/4/2 14点左右 电机带负载转动,震动比较小,可接受,转很久不烫。
/***********
*宏定义部分
*
***********/
/***********
*头文件部分
*
***********/
#include "main.h"
/*****************************
*函数实现
*****************************/
int main(void)
{
     
   //delay_init(72000000); //72M

   TIM1_PWM_Init(11999,17);//720khz  org:99 0  1000 17

   Motor_Init();

   TIM_Cmd(TIM1, ENABLE);

   Delay_ms(10);  

   while(1)
  {
   
    // 控制步进电机
//    /*IN1---1  IN2---PWM  正转 慢速衰减 占空比越小速度越快*/
//    /*IN1---PWM  IN2---0 正转  快速衰减 占空比越大速度越快*/
		GPIO_SetBits(GPIOA, GPIO_Pin_8);
		TIM_SetCompare1(TIM1, 6000);
		
		Delay_ms(300);
			   
		GPIO_ResetBits(GPIOB, GPIO_Pin_13);
		TIM_SetCompare1(TIM1, 6000);
编写使用STM32F103控制器和DRV8833驱动器来驱动步进电机的代码涉及几个步骤。首先,你需要确保你的硬件连接正确,STM32F103的GPIO(通用输入输出)引脚连接到DRV8833的输入引脚上,然后通过编写代码来控制这些引脚,以驱动步进电机按照指定的方向和步数进行旋。 以下是编写代码的一个基本流程和简单示例: 1. 初始化GPIO引脚:设置GPIO引脚为输出模式,并配置为适合步进电机驱动器的电平。 2. 初始化定时器:配置STM32F103的定时器,以产生PWM波形,用于控制步进电机的速度。 3. 编写控制函数:编写控制步进电机方向、步进和停止的函数。 4. 主循环:在主循环中调用这些函数来控制步进电机。 示例代码(伪代码): ```c // 初始化GPIO引脚 void GPIO_Init(void) { // 初始化控制步进的GPIO引脚为输出模式 // 初始化方向控制的GPIO引脚为输出模式 } // 控制步进电机动一定步数 void Step_Motor_Step(int steps, int direction) { // 根据方向设置方向引脚 // 循环steps次,每次切换步进引脚状态来驱动电机 } // 控制步进电机停止 void Step_Motor_Stop(void) { // 切换GPIO引脚状态来停止电机 } int main(void) { // 初始化GPIO GPIO_Init(); // 设置PWM定时器(省略具体实现) while(1) { // 电机100步 Step_Motor_Step(100, 1); // 延时(省略具体实现) // 电机100步 Step_Motor_Step(100, 0); // 延时(省略具体实现) // 停止电机 Step_Motor_Stop(); // 延时(省略具体实现) } } ``` 请注意,上述代码为伪代码,具体实现需要根据实际的硬件连接和STM32库函数来编写。在编程时,你需要查阅STM32F103的参考手册和库函数文档,以及DRV8833的数据手册来正确设置GPIO和定时器参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值