前言
本文主要以两相步进电机为例,为总结使用;
电机规格:最大电压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);