新手上路
- 积分
- 34
- 金钱
- 34
- 注册时间
- 2014-8-14
- 在线时间
- 14 小时
|
1金钱
本帖最后由 踏雪sunnyboy 于 2016-10-14 08:58 编辑
大家好~我用spi对mpu9250数据进行读取,其中磁力计数据采用i2c master方式进行转发。
由于SPI速度比较快,需要等待内部I2C传输完成才能进行才下一步。但是内部I2C读取速率可调吗?我现在spi读取磁力计1个字节需要等待磁力计2ms左右才能继续spi传输,否则传回的磁力计数据是0。
那要这spi有何用。。。求指教,谢谢~
[mw_shl_code=c,true]/***************************************************************/
// MPU9250磁力计读取
//I2C_SLVx_ADDR: MPU9250_AK8963_ADDR
//I2C_SLVx_REG: reg
//return value: EXT_SENS_DATA_00 register value
/***************************************************************/
u8 i2c_Mag_read(u8 reg)
{
u16 j=5000;
MPU9250_Write_Reg(I2C_SLV0_ADDR ,MPU9250_AK8963_ADDR|0x80); //设置磁力计地址
MPU9250_Write_Reg(I2C_SLV0_REG ,reg);// set reg addr
MPU9250_Write_Reg(I2C_SLV0_DO ,0xff);//read
while(j--);//由于I2C速度慢,等待内部I2C传输完成
return MPU9250_Read_Reg(EXT_SENS_DATA_00);
}[/mw_shl_code]
|
最佳答案
查看完整内容[请看2#楼]
已解决。最后用的模拟I2C直接采集。设置的加速度和陀螺仪采集速率为200hz,磁力计大概60及HZ,因为磁力计本身采样频率100HZ,判断是否磁力计数据采集完成,没有完成的话,就放弃此次磁力计采集。
|