有人能看懂基于stm32的四轴飞行器代码吗?

Jay_Qi 2019-08-26 09:16:05
#include "control.h" //垂直方向电机 速度设置 void SetUpDowm(float front_val,float back_val)//min--max 升降运动 { __HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,front_mid+front_val); //1 __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,back_mid-back_val);//3 // 电机三根线反了 static uint16_t last_value_front = mid; static uint16_t last_value_back = mid; uint16_t front = mid + front_val; uint16_t back = mid - back_val; // 电机三根线反了 front = CONSTRAIN(front, last_value_front+max_speed_delta, last_value_front-max_speed_delta); #define CONSTRAIN(x,max,min) (x>max?max:(x<min?min:x)) back = CONSTRAIN(back, last_value_back+max_speed_delta, last_value_back-max_speed_delta); front = CONSTRAIN(front, max_speed_value, min_speed_value); back = CONSTRAIN(back, max_speed_value, min_speed_value); __HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,front); //1 __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,back);//3 last_value_front = front; last_value_back = back; } float temp_l = 0; float temp_r =0; //水平方向电机 速度设置 void SetHorizontal(float f_b, float rotate)//水平运动 { temp_l = f_b+left_mid+rotate; temp_r = f_b+right_mid-rotate; //控制方案一 __HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_3,temp_r);//2 __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_3,temp_r);//4 //控制方案二 //static uint16_t last_value_left = left_mid; //static uint16_t last_value_right = right_mid; //float right = right_mid + f_b - rotate;//右 //float left = left_mid + f_b + rotate;//左 //right = CONSTRAIN(right, last_value_right+max_speed_delta, last_value_right-max_speed_delta); //left = CONSTRAIN(left, last_value_left+max_speed_delta, last_value_left-max_speed_delta); // left = CONSTRAIN(left, max_speed_value, min_speed_value); // right = CONSTRAIN(right, max_speed_value, min_speed_value); // //__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_3,right);//2 // __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_3,left);//4 //last_value_left = left; //last_value_right = right; } u16 xCounterPi_To_Stm32 = 5; void Clear_Control_Disable_Counter(void) { xCounterPi_To_Stm32
...全文
132 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2019-08-27
  • 打赏
  • 举报
回复
不懂这个代码,就你描述的情况看,原地转圈,肯定是方向问题。
Jay_Qi 2019-08-26
  • 打赏
  • 举报
回复
求指点,为什么我的飞行器原地转圈圈

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧