|
发表于 2014-5-8 10:01:39
|
显示全部楼层
我刚才看了一下代码,读取加速度计的代码片段中,似乎没有I2C连续读取。
- A_X_Buffer[0] = I2C_ByteRead(ADDR_LSM330DLC_A, OUT_X_L_A);
- A_X_Buffer[1] = I2C_ByteRead(ADDR_LSM330DLC_A, OUT_X_H_A);
- A_X = (int16_t)( A_X_Buffer[1]<<8 | A_X_Buffer[0] );
- A_X = A_X >> 4;
-
- A_Y_Buffer[0] = I2C_ByteRead(ADDR_LSM330DLC_A, OUT_Y_L_A);
- A_Y_Buffer[1] = I2C_ByteRead(ADDR_LSM330DLC_A, OUT_Y_H_A);
- A_Y = (int16_t)( A_Y_Buffer[1]<<8 | A_Y_Buffer[0] );
- A_Y = A_Y >> 4;
-
- A_Z_Buffer[0] = I2C_ByteRead(ADDR_LSM330DLC_A, OUT_Z_L_A);
- A_Z_Buffer[1] = I2C_ByteRead(ADDR_LSM330DLC_A, OUT_Z_H_A);
- A_Z = (int16_t)( A_Z_Buffer[1]<<8 | A_Z_Buffer[0] );
- A_Z = A_Z >> 4;
复制代码
我找了很多代码,也尝试了很多方式,似乎这个传感器无法连续读取吧?
比如,用类似如下的操作,无法读取OUT_X_H_A和它后面的寄存器。
- A_Buffer[6] = I2C_ByteRead(ADDR_LSM330DLC_A, OUT_X_H_A,6);
复制代码
|
|