电机控制代码
- /**************************************************************************
- 函 数 名: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);
- }
|