#ifndef BLDC_CONTROL_H #define BLDC_CONTROL_H #include "gpio.h" //Òý½Å¶¨Òå /*******************************************************/ // Á¬½ÓÇý¶¯°åµÄ SD ½Å #define SHUTDOWN_PIN GPIO_PIN_6 #define SHUTDOWN_GPIO_PORT GPIOA // #define SHUTDOWN_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE() /*******************************************************/ /* µç»ú SD or EN ʹÄܽŠ*/ #define BLDCM_ENABLE_SD() \ do \ { \ Set_SDH2136_Enable(); \ } while (0) // ¸ßµçƽ´ò¿ª-¸ßµçƽʹÄÜ #define BLDCM_DISABLE_SD() \ do \ { \ Set_SDH2136_Disable(); \ } while (0) // µÍµçƽ¹Ø¶Ï-µÍµçƽ½ûÓà /* µç»ú·½Ïò¿ØÖÆÃ¶¾Ù */ typedef enum { MOTOR_FWD = 0, MOTOR_REV, } motor_dir_t; typedef struct { motor_dir_t direction; // µç»ú·½Ïò uint16_t dutyfactor; // PWM Êä³öÕ¼¿Õ±È uint8_t is_enable; // ʹÄܵç»ú uint32_t lock_timeout; // µç»ú¶Âת¼ÆÊ± } bldcm_data_t; void bldcm_init(void); void set_bldcm_speed(uint16_t v); void set_bldcm_direction(motor_dir_t dir); motor_dir_t get_bldcm_direction(void); void set_bldcm_enable(void); void set_bldcm_disable(void); void bldcm_pid_control(void); // extern void BLDC_SpeedAndPID(void); #endif