標題: STM32-MPU6050陀螺儀(硬件IIC)程序 [打印本頁]

作者: luluyao    時間: 2019-3-9 16:35
標題: STM32-MPU6050陀螺儀(硬件IIC)程序
單片機源程序如下:
  1. #include "public.h"

  2. #include "USART.h"
  3. #include "MPU6050.h"
  4. #include "TIM.h"
  5. #include "Filter.h"


  6. MPU_TypeDef MPU_Offset,MPU0;
  7. MPU_Angle_TypeDef MPU_Angle0;

  8. Angle_TypeDef Angle_Final;
  9. Angle_TypeDef Angle_CMP1,Angle_CMP2,Angle_CMP3,Angle_CMP4,Angle_CMP5;

  10. extern Filter_Kalman_TypeDef K1,K2;

  11. int main()
  12. {
  13.           SystemInit();
  14.         
  15.           Printf_Init(57600);               //串口打印
  16.         
  17.           MPU6050_Init();                   //陀螺儀初始化
  18.           printf("Waitting....");
  19.           delay_ms(1000);                   //延時1000ms
  20.           printf("OK..........");
  21.           GetData_MPU(&MPU_Offset);         //消除陀螺儀偏差
  22.         
  23.           Time_Init(TIM_3,12);              //開啟10ms定時器  
  24.         
  25.           Kalman_Init(&K1);
  26.           Kalman_Init(&K2);
  27.         
  28.           while(1)
  29.                 {
  30.                         
  31. //      printf("%2.4lf,%2.4lf\r\n",Angle_Final.Pitch,Angle_Final.Roll);
  32.         printf("%2.4lf,%2.4lf,%2.4lf,%2.4lf,%2.4lf,%2.4lf,%2.4lf,%2.4lf,%2.4lf\r\n",Angle_CMP1.Pitch,Angle_CMP2.Pitch,Angle_CMP3.Pitch,Angle_CMP4.Pitch,Angle_CMP5.Pitch,Angle_CMP1.Roll,Angle_CMP2.Roll,Angle_CMP3.Roll,Angle_CMP4.Roll);
  33.                         
  34.                         
  35. //                         GetData_MPU(&MPU0);
  36. //                         printf("Pitch:%d\t",MPU0.GYRx);
  37. //                         printf("Roll: %d\t",MPU0.GYRy);
  38. //                         printf("Yaw:  %d\t",MPU0.GYRz);
  39. //                  GetData_MPU_Angle(&MPU_Angle0);
  40. //                        printf("%2.4lf\t",MPU_Angle0.ACC_Pitch);
  41. //                        printf("%2.4lf\t",MPU_Angle0.ACC_Roll);
  42. //                        printf("Pitch:%2.4lf\t",MPU_Angle0.GYR_Pitch);
  43. //                        printf("Roll: %2.4lf\t",MPU_Angle0.GYR_Roll);
  44. //                        printf("Yaw:  %2.4lf\t",MPU_Angle0.GYR_Yaw);
  45. //                        printf("\r\n");
  46. //                        printf("%2.4lf %2.4lf %2.4lf %2.4lf %2.4lf \n",MPU_Angle0.ACC_Pitch,MPU_Angle0.ACC_Roll,MPU_Angle0.GYR_Pitch,MPU_Angle0.GYR_Roll,MPU_Angle0.GYR_Yaw);
  47. //                  delay_ms(1000);
  48.                 }
  49. }
復制代碼

所有資料51hei提供下載:
A3.MPU605陀螺儀(硬件IIC).7z (207.4 KB, 下載次數(shù): 111)



作者: 米羅破曉    時間: 2019-6-11 20:10
為什么我用就不通
作者: 米羅破曉    時間: 2019-6-27 20:08
怎么用你的硬件IIc實現(xiàn)從機功能




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1