|
发表于 2015-6-15 13:55:36
|
显示全部楼层
楼主你好,这几天我也在弄mpu915的磁力计部分,差不多也遇到跟你相似的问题。我9150里关于6050的数据是能读出来的,但是按照网上说的去读取磁力计,就只有2个值,要么是0要么是-256.这是我的代码,希望能有大神来给我们这种菜鸟指点一二,在这里万分感谢- void MPU6050_Init()
- {
- IIC_Init();
-
- //device init
- IIC_Write_Data(MPU6050_Addr,PWR_MGMT_1,0x00);
- IIC_DelayMs(20);
- IIC_Write_Data(MPU6050_Addr,PWR_MGMT_1,0x03);
- IIC_Write_Data(MPU6050_Addr,CONFIG_MPU6050,0x02);
- IIC_Write_Data(MPU6050_Addr,SMPLRT_DIV,0x00);
- IIC_Write_Data(MPU6050_Addr,GYRO_CONFIG,0x18);
- IIC_Write_Data(MPU6050_Addr,ACCEL_CONFIG,0x08);
-
- //IIC_Write_Data(MPU6050_Addr,PWR_MGMT_1,0x00);
- //IIC_Write_Data(MPU6050_Addr,SMPLRT_DIV,0x07);
- //IIC_Write_Data(MPU6050_Addr,CONFIG, 0x06);
- IIC_Write_Data(MPU6050_Addr,INT_PIN_CFG,0x02);
- IIC_Write_Data(MPU6050_Addr,USER_CTRL,0x00);
- IIC_Write_Data(MAGADD,CNTL, 0x00);
- IIC_DelayMs(2);
- IIC_Write_Data(MAGADD,CNTL, 0x01);
-
- //IIC_Read_Data_N(MAGADD,0X10,3,mag_sens_adj);
-
- }
- uint16_t MPU6050_Read(unsigned char REG_Address)
- {
- uint8_t H,L;
- uint16_t temp;
- H=IIC_Read_Data(MPU6050_Addr,REG_Address);
- L=IIC_Read_Data(MPU6050_Addr,REG_Address+1);
- temp= (H<<8)|L ;
- return temp;
- }
- uint16_t COMPASS_Read(unsigned char REG_Address)
- {
- uint8_t H,L;
- uint16_t temp;
-
- H=IIC_Read_Data(MAGADD,REG_Address);
- IIC_Write_Data(MAGADD,CNTL, 0x01);
- L=IIC_Read_Data(MAGADD,REG_Address-1);
- IIC_Write_Data(MAGADD,CNTL, 0x01);
-
-
- temp= (H<<8)|L ;
-
- return temp;
- }
- void MPU6050_CONVENT()
- {
- ACC.X=MPU6050_Read(ACCEL_XOUT_H)-ACC_OFFSET.X;
- ACC.Y=MPU6050_Read(ACCEL_YOUT_H)-ACC_OFFSET.Y;
- ACC.Z=MPU6050_Read(ACCEL_ZOUT_H)-ACC_OFFSET.Z;
-
- GYR_RATE.X=MPU6050_Read(GYRO_XOUT_H);
- GYR_RATE.Y= MPU6050_Read(GYRO_YOUT_H);
- GYR_RATE.Z=MPU6050_Read(GYRO_ZOUT_H);
-
- COMPASS.X=COMPASS_Read(HXH);
- COMPASS.Y=COMPASS_Read(HYH);
- COMPASS.Z=COMPASS_Read(HZH);
-
- //COMPASS.X=((long)COMPASS.X * mag_sens_adj[0]) >> 8;
- //COMPASS.Y=((long)COMPASS.X * mag_sens_adj[1]) >> 8;
- //COMPASS.Z=((long)COMPASS.X * mag_sens_adj[2]) >> 8;
-
- GYR.X= GYR_RATE.X-GYR_OFFSET.X;
- GYR.Y= GYR_RATE.Y-GYR_OFFSET.Y;
- GYR.Z= GYR_RATE.Z-GYR_OFFSET.Z;
-
-
-
- }
复制代码 |
|