新手上路
- 积分
- 34
- 金钱
- 34
- 注册时间
- 2014-8-14
- 在线时间
- 14 小时
|
发表于 2016-10-14 08:46:52
|
显示全部楼层
本帖最后由 踏雪sunnyboy 于 2016-10-14 09:05 编辑
谢谢楼主!程序的确可用很强大!
有个问题想要请教,就是spi读取磁力计的延时问题。看程序中是5000次循环等待内部I2C转发完成,发送一个字节竟然耗时2ms多,减小循环次数为3000出错,磁力计数据传回来的为0。而我用模拟I2C读取磁力计6个字节才用时2ms, 那这样的话spi读取就没有太大优势了,是设置问题?[mw_shl_code=applescript,true]/***************************************************************/
// MPU9250读取磁力计
//I2C_SLVx_ADDR: MPU9250_AK8963_ADDR
//I2C_SLVx_REG: reg
//return value: EXT_SENS_DATA_00 register value
/***************************************************************/
static 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转发完成
return MPU9250_Read_Reg(EXT_SENS_DATA_00);
}[/mw_shl_code]
|
|