Moran_ 发表于 2014-2-14 16:24:56

【求助】 IIC 读取 mpu6050 时遇到的问题。

本帖最后由 Moran_ 于 2014-2-14 16:28 编辑

   开发板 stm32 , 模拟iic ,下面是读取mpu6050输出的代码。data为short型,用来缓存, mpu_data为7个float型数据结构体。
   

   BUF=Single_Read(MPU6050_Addr,ACCEL_XOUT_L);
   BUF=Single_Read(MPU6050_Addr,ACCEL_XOUT_H);
   data =        (BUF<<8)|BUF;
   mpu_data.ACCE_X/=((float)data)/16384;                                                


   BUF=Single_Read(MPU6050_Addr,ACCEL_YOUT_L);
   BUF=Single_Read(MPU6050_Addr,ACCEL_YOUT_H);
   data =        (BUF<<8)|BUF;
   mpu_data.ACCE_Y = ((float)data)/16384;                                                   

       
   BUF=Single_Read(MPU6050_Addr,ACCEL_ZOUT_L);
   BUF=Single_Read(MPU6050_Addr,ACCEL_ZOUT_H);
   data=        (BUF<<8)|BUF;
   mpu_data.ACCE_Z = ((float)data)/16384;                                              


   BUF=Single_Read(MPU6050_Addr,TEMP_OUT_L);
   BUF=Single_Read(MPU6050_Addr,TEMP_OUT_H);
   data=(BUF<<8)|BUF;
   mpu_data.TEMPRETURE = 35+ ((double) ( data + 13200)) / 280;
       
   BUF=Single_Read(MPU6050_Addr,GYRO_XOUT_L);
   BUF=Single_Read(MPU6050_Addr,GYRO_XOUT_H);
   data=        (BUF<<8)|BUF;
   mpu_data.GYRO_X = ((double)data)/16.4;                                                


   BUF=Single_Read(MPU6050_Addr,GYRO_YOUT_L);
   BUF=Single_Read(MPU6050_Addr,GYRO_YOUT_H);
   data=        (BUF<<8)|BUF;
   mpu_data.GYRO_Y = ((double)data)/16.4;                                                

       
   BUF=Single_Read(MPU6050_Addr,GYRO_ZOUT_L);
   BUF=Single_Read(MPU6050_Addr,GYRO_ZOUT_H);
   data =        (BUF<<8)|BUF;
   mpu_data.GYRO_Z = ((double)data)/16.4;                

读取完后,        发送到上位机显示。全是0.000000 。

小弟想知道问题出在哪儿?                     

Moran_ 发表于 2014-2-14 17:04:57

好吧,我解决了。
页: [1]
查看完整版本: 【求助】 IIC 读取 mpu6050 时遇到的问题。