// motor_driver.h #ifndef __MOTOR_DRIVER_H #define __MOTOR_DRIVER_H #include "stm32f4xx.h" #include "stm32f4xx_gpio.h" #include "stm32f4xx_rcc.h" #include "stm32f4xx_tim.h" // 电机左 引脚定义 //PE9 PE13 PE4 #define L_MOTOR_IN1_GPIO_PORT GPIOE #define L_MOTOR_IN1_GPIO_PIN GPIO_Pin_9 #define L_MOTOR_IN1_GPIO_CLK RCC_AHB1Periph_GPIOE #define L_MOTOR_IN2_GPIO_PORT GPIOE #define L_MOTOR_IN2_GPIO_PIN GPIO_Pin_13 #define L_MOTOR_IN2_GPIO_CLK RCC_AHB1Periph_GPIOE #define L_MOTOR_FAULT_GPIO_PORT GPIOE #define L_MOTOR_FAULT_GPIO_PIN GPIO_Pin_4 #define L_MOTOR_FAULT_GPIO_CLK RCC_AHB1Periph_GPIOE // 电机中 引脚定义 //PB3 PE14 PE5 #define M_MOTOR_IN1_GPIO_PORT GPIOB #define M_MOTOR_IN1_GPIO_PIN GPIO_Pin_3 #define M_MOTOR_IN1_GPIO_CLK RCC_AHB1Periph_GPIOB #define M_MOTOR_IN2_GPIO_PORT GPIOE #define M_MOTOR_IN2_GPIO_PIN GPIO_Pin_14 #define M_MOTOR_IN2_GPIO_CLK RCC_AHB1Periph_GPIOE #define M_MOTOR_FAULT_GPIO_PORT GPIOE #define M_MOTOR_FAULT_GPIO_PIN GPIO_Pin_5 #define M_MOTOR_FAULT_GPIO_CLK RCC_AHB1Periph_GPIOE // 电机右 引脚定义 //PD15 PE15 PE6 #define R_MOTOR_IN1_GPIO_PORT GPIOD #define R_MOTOR_IN1_GPIO_PIN GPIO_Pin_15 #define R_MOTOR_IN1_GPIO_CLK RCC_AHB1Periph_GPIOD #define R_MOTOR_IN2_GPIO_PORT GPIOE #define R_MOTOR_IN2_GPIO_PIN GPIO_Pin_15 #define R_MOTOR_IN2_GPIO_CLK RCC_AHB1Periph_GPIOE #define R_MOTOR_FAULT_GPIO_PORT GPIOE #define R_MOTOR_FAULT_GPIO_PIN GPIO_Pin_6 #define R_MOTOR_FAULT_GPIO_CLK RCC_AHB1Periph_GPIOE // 电机状态 typedef enum { MOTOR_STOP = 0, // 停止(滑行) MOTOR_FORWARD, // 正转 MOTOR_REVERSE, // 反转 MOTOR_BRAKE // 刹车 } MotorState; // 函数声明 void DRV8832_Init(void); void Motor_Control(MotorState state); uint8_t Motor_GetFaultStatus(void); void Motor_SetSpeed(uint8_t speed, MotorState direction); void PWM_Timer_Init(void); void L_Motor_Control(MotorState state); void M_Motor_Control(MotorState state); void R_Motor_Control(MotorState state); #endif /* __MOTOR_DRIVER_H */