|
发表于 2014-7-23 12:08:13
|
显示全部楼层
楼主您好,最近我也在用lsm9d这个imu,很幸运看到了您的代码,并且移植了可以用了,加速度、陀螺仪的数据都正常,但是磁力计的数据始终为零,
我试图修改打开磁力计,但是我查阅整个手册文档也没具体找到那个寄存器可以使能磁力计的三轴数据?请问楼主知道修改那个寄存器吗?
下面是您的代码,怎么修改才能使能磁力计呢?
- /*
- Gyrosensor Configuration
- */
-
- I2C_ByteWrite(ADDR_LSM9DS0_G, CTRL_REG2_G, 0x00);
- while( I2C_ByteRead(ADDR_LSM9DS0_G, CTRL_REG2_G)!=0x00 );
-
- I2C_ByteWrite(ADDR_LSM9DS0_G, CTRL_REG3_G, 0x00);
- while( I2C_ByteRead(ADDR_LSM9DS0_G, CTRL_REG3_G)!=0x00 );
- // Disable Interrupt
- I2C_ByteWrite(ADDR_LSM9DS0_G, CTRL_REG4_G, 0x20); // GYRO_FS = +-2000dps BDU Enable Little Endian
- while( I2C_ByteRead(ADDR_LSM9DS0_G, CTRL_REG4_G)!=0x20 );
-
- I2C_ByteWrite(ADDR_LSM9DS0_G, CTRL_REG5_G, 0x00);
- while( I2C_ByteRead(ADDR_LSM9DS0_G, CTRL_REG5_G)!=0x00 );
-
- //Gyroscope Enable
- I2C_ByteWrite(ADDR_LSM9DS0_G, CTRL_REG1_G, 0xFF); // GYRO_ODR: 760Hz Cut-Off 100
- while( I2C_ByteRead(ADDR_LSM9DS0_G, CTRL_REG1_G)!=0xFF );
-
-
- /*
- Accelerometer and Magnetometer Configuration
- */
-
- I2C_ByteWrite(ADDR_LSM9DS0_XM, CTRL_REG0_XM, 0x00);
- while( I2C_ByteRead(ADDR_LSM9DS0_XM, CTRL_REG0_XM)!=0x00 );
-
- I2C_ByteWrite(ADDR_LSM9DS0_XM, CTRL_REG2_XM, 0x00); // ACC_FS = +-2g
- while( I2C_ByteRead(ADDR_LSM9DS0_XM, CTRL_REG2_XM)!=0x00 );
-
- I2C_ByteWrite(ADDR_LSM9DS0_XM, CTRL_REG3_XM, 0x00);
- while( I2C_ByteRead(ADDR_LSM9DS0_XM, CTRL_REG3_XM)!=0x00 );
-
- I2C_ByteWrite(ADDR_LSM9DS0_XM, CTRL_REG4_XM, 0x00);
- while( I2C_ByteRead(ADDR_LSM9DS0_XM, CTRL_REG4_XM)!=0x00 );
-
- I2C_ByteWrite(ADDR_LSM9DS0_XM, CTRL_REG5_XM, 0x60); //MAG_ODR: 3.125Hz High Resolution
- while( I2C_ByteRead(ADDR_LSM9DS0_XM, CTRL_REG5_XM)!=0x60 );
-
- I2C_ByteWrite(ADDR_LSM9DS0_XM, CTRL_REG6_XM, 0x00); //MAG_FS = +-2 gauss
- while( I2C_ByteRead(ADDR_LSM9DS0_XM, CTRL_REG6_XM)!=0x00 );
-
- I2C_ByteWrite(ADDR_LSM9DS0_XM, CTRL_REG7_XM, 0x00); //Magnetic sensor mode: Continuous-conversion mode
- while( I2C_ByteRead(ADDR_LSM9DS0_XM, CTRL_REG7_XM)!=0x00 );
-
- //Accelerometer Enable
- I2C_ByteWrite(ADDR_LSM9DS0_XM, CTRL_REG1_XM, 0x87); // ACC_ODR: 400Hz
- while( I2C_ByteRead(ADDR_LSM9DS0_XM, CTRL_REG1_XM)!=0x87 );
复制代码 |
|