STM32CubeIDE学习笔记——使用HAL库PWM输出驱动舵机

目录

PWM驱动简介

工程配置

代码编写

这里我采用的是STM32F103C8T6最小系统板,SG-90舵机实现功能。

PWM驱动简介

舵机驱动角度和PWM占空比有关系,具体对应为50--0度  150--90度  250--180度,通过STM32的定时器功能输出PWM波来控制舵机进行转动。

工程配置

 时钟选择外部高速时钟

系统映射配置

时钟树设为为72HZ频率,2分频

 选择定时器2通道4为PWM输入模式,设置对应引脚

 由于我们时钟频率为72HZ,所以预分频为720-1=719,设置装载初值为2000-1=2199,则对应pwm占空比与舵机控制占空比即可对应为50——0度   150——90度  250——180度

代码编写

工程配置完后代码中需开启定时器

  /* USER CODE BEGIN 2 */
  HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_4);
  /* USER CODE END 2 */

 之后封装一个舵机转动度数与PWM占空比对应函数即可

/* USER CODE BEGIN 4 */
void Servo_Control(uint16_t angle)   //参数为舵机转动角度 0-180
 {
    float temp;
    temp =angle/9*10+50 ;
    __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, (uint16_t )temp);
 }
/* USER CODE END 4 */

在While(1)函数中直接使用对应舵机控制函数即可。

猜你喜欢

转载自blog.csdn.net/Reasally/article/details/126799988
今日推荐