找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2943|回复: 2
收起左侧

STM32-MPU6050陀螺仪(硬件IIC)程序

[复制链接]
ID:487472 发表于 2019-3-9 16:35 | 显示全部楼层 |阅读模式
单片机源程序如下:
  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, 下载次数: 111)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:455076 发表于 2019-6-11 20:10 | 显示全部楼层
为什么我用就不通
回复

使用道具 举报

ID:455076 发表于 2019-6-27 20:08 | 显示全部楼层
怎么用你的硬件IIc实现从机功能
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表