【求助】 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 。
小弟想知道问题出在哪儿? 好吧,我解决了。
页:
[1]