舵机驱动---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)!