asp.net 网站开发实例教程爱网站关键词查询工具长尾
简介
基于上一篇 STM32F103C8T6实现 SG90 180 °电机任意角度转动
本来想实现角度转动, 但靠舵机本身无法实现限位, 需要记录位置, 并且根据转速计算大概位置, 存在误差, 不实现角度转动了, 只实现正反转
代码
正向速度0.75为最大速度, 反向2.25, 接近1.5ms则速度降低
void Servo_SetDirection(uint8_t direction)
{int ccrMs = 2000;uint16_t pulse = 0;switch (direction) {case 0: // 正向最大速度pulse = 0.75 * ccrMs; // 0.75msbreak;case 1: // 停止pulse = 1.5 * ccrMs; // 1.5msbreak;case 2: // 反向最大速度pulse = 2.25 * ccrMs; // 2.25msbreak;default:pulse = backMax * ccrMs; // 默认停止break;}__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, pulse);
}