自学内容网 自学内容网

舵机驱动---HAL库

一、HAL库

Servo.c

#include <main.h>
#include <tim.h>

uint16_t pwm_angle(uint8_t angle)
{
return angle*2000/180+500;
}

void SET_angle_1(uint8_t angle)
{
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_3,pwm_angle(angle));
}

void SET_angle_2(uint16_t angle)
{
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_4,pwm_angle(angle));
}

void Servo_init()
{
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_3);
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_4);
}

Servo.h

#ifndef __SERVO_H
#define __SERVO_H

void SET_angle_1(uint8_t angle);
void SET_angle_2(uint16_t angle);
void Servo_init();

#endif


二、README

舵机的tim时钟周期为20ms。
更具占空比0~100,变化角度


将角度转换成pwm
uint16_t pwm_angle(uint8_t angle)
{
return angle*2000/180+500;
}


原文地址:https://blog.csdn.net/weixin_73690807/article/details/145228804

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!