基本信息
源码名称:PID调节电机转速 配合MPU6050
源码大小:8.87M
文件格式:.zip
开发语言:C/C++
更新时间:2019-03-04
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 1 元×
微信扫码支付:1 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
#include "timer.h" #include "led.h" #include "delay.h" #include "sys.h" #include "usart.h" #include "pid.h" #include "mpu6050.h" #include "inv_mpu.h" #include "inv_mpu_dmp_motion_driver.h" #include "motor.h" #include "math.h" #include "oled.h" #include "key.h" int main() { extern float val; delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(115200); //串口初始化为115200 MPU_Init(); //初始化MPU6050 LED_Init(); //LED端口初始化 TIM3_PWM_Init(1899,0); //不分频。PWM频率=72000000/900=80Khz OLED_Init(); Pid_init(); Motor_init(); while(mpu_dmp_init()); LED0 = 0; TIM6_init(9,3599); TIM_Cmd(TIM6,DISABLE); KEY_Init(); OLED_ShowString(0,0,"yaw = ",24); OLED_ShowString(0,24,"val = ",24); OLED_Refresh_Gram(); //更新显示到OLED while(1) { if(KEY0==0) { delay_ms(10); if(KEY0==0) { TIM_Cmd(TIM6,ENABLE); } while(!KEY0); } if(KEY1==0) { delay_ms(10); if(KEY1==0) { TIM6_init(0,3599); Motor1_A=1; Motor1_B=0; Motor2_A=1; Motor2_B=0; Motor3_A=1; Motor3_B=0; TIM_SetCompare1(TIM3,1100); TIM_SetCompare2(TIM3,1100); TIM_SetCompare3(TIM3,1100); } while(!KEY1); if(KEY0==0) { delay_ms(10); if(KEY0==0) { Motor1_A=0; Motor1_B=1; Motor2_A=1; Motor2_B=0; Motor3_A=1; Motor3_B=1; TIM_SetCompare1(TIM3,1250); TIM_SetCompare2(TIM3,1250); TIM_SetCompare3(TIM3,1250); } } while(!KEY0); } if(WK_UP==1) { delay_ms(10); if(WK_UP==1) { TIM_Cmd(TIM6,DISABLE); Motor1_A=1; Motor1_B=1; Motor2_A=1; Motor2_B=1; Motor3_A=1; Motor3_B=1; } while(WK_UP); } } }