#ifndef MOTOR_CONTROLLER_H #define MOTOR_CONTROLLER_H #include "stm32f0xx_hal.h" #include "stm32f0xx_hal_def.h" #include "stm32f0xx_hal_tim.h" typedef struct { TIM_HandleTypeDef* Driver_PWM_TIM; uint32_t U_Phase_TIM_Channel; uint32_t V_Phase_TIM_Channel; uint32_t W_Phase_TIM_Channel; } Cont_Mot_PWMInterface_TypeDef; typedef struct { uint32_t rpm_rated_speed; uint32_t mA_rated_current; uint8_t num_poles; uint16_t v_rated_voltage; uint16_t w_rated_power; float vkrpm_bemf_constant; uint32_t Nmm_rated_torque; } Electrical_Specs_TypeDef; typedef struct { Cont_Mot_PWMInterface_TypeDef PWM_Interface; Electrical_Specs_TypeDef Electrical_Specs; } Motor_TypeDef; void BLDC_PWM_Init(Cont_Mot_PWMInterface_TypeDef* PWM_Interface); void BLDC_Loop(); #endif