2026-02-11 01:18:00 +08:00
|
|
|
|
// 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"
|
|
|
|
|
|
|
2026-02-25 11:13:03 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD> //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
|
2026-02-11 01:18:00 +08:00
|
|
|
|
|
2026-02-25 11:13:03 +08:00
|
|
|
|
#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
|
2026-02-11 01:18:00 +08:00
|
|
|
|
|
2026-02-25 11:13:03 +08:00
|
|
|
|
#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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD> //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
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD> //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
|
2026-02-11 01:18:00 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>״̬
|
|
|
|
|
|
typedef enum {
|
|
|
|
|
|
MOTOR_STOP = 0, // ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>
|
|
|
|
|
|
MOTOR_FORWARD, // <20><>ת
|
|
|
|
|
|
MOTOR_REVERSE, // <20><>ת
|
|
|
|
|
|
MOTOR_BRAKE // ɲ<><C9B2>
|
|
|
|
|
|
} MotorState;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
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);
|
2026-02-25 11:13:03 +08:00
|
|
|
|
void L_Motor_Control(MotorState state);
|
|
|
|
|
|
void M_Motor_Control(MotorState state);
|
|
|
|
|
|
void R_Motor_Control(MotorState state);
|
2026-02-11 01:18:00 +08:00
|
|
|
|
#endif /* __MOTOR_DRIVER_H */
|