电机控制代码
/**************************************************************************
函 数 名:void motor_ctrl(int16_t left_speed,int16_t right_speed)
功 能:电机速度设定函数
入口参数:left_speed左电机速度 right_speed右电机速度
**************************************************************************/
void motor_ctrl(int16_t left_speed,int16_t right_speed)
{
if(left_speed>=0) //左电机速度大于0时,电机正转
{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_13,GPIO_PIN_RESET);
}
else //电机反转
{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_13,GPIO_PIN_SET);
}
if(right_speed>=0)
{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);
}
else
{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_SET);
}
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, abs(left_speed));//将速度占空比赋给电机
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_2, abs(right_speed);
}
|