金牌会员
 
- 积分
- 2775
- 金钱
- 2775
- 注册时间
- 2015-6-1
- 在线时间
- 394 小时
|
发表于 2016-3-23 10:54:32
|
显示全部楼层
HMC5883和MPU6050是完全一样的。我之前用的STM32,加了一大堆头文件和函数什么的。前阵子在用别的芯片,感觉费事,就直接调在I2C时把两个传感器的配置一写:
txBuf1[0] = 0x6B;
txBuf1[1] = 0x00;
bspI2cWrite(txBuf1, 2, 0x68);
txBuf1[0] = 0x19;
txBuf1[1] = 0x07;
bspI2cWrite(txBuf1, 2, 0x68);
txBuf1[0] = 0x1A;
txBuf1[1] = 0x06;
bspI2cWrite(txBuf1, 2, 0x68);
txBuf1[0] = 0x1C;
txBuf1[1] = 0x08;
bspI2cWrite(txBuf1, 2, 0x68);
txBuf1[0] = 0x1B;
txBuf1[1] = 0x00;
bspI2cWrite(txBuf1, 2, 0x68);
txBuf1[0] = 0x02;
txBuf1[1] = 0x00;
bspI2cWrite(txBuf1, 2, 0x1E);
txBuf1[0] = 0x00;
txBuf1[1] = 0x18;
bspI2cWrite(txBuf1, 2, 0x1E);
txBuf1[0] = 0x01;
txBuf1[1] = 0x00;
bspI2cWrite(txBuf1, 2, 0x1E);
函数是自己写的,你不用管,反正意思就是给地址0x6B写入0x00等等。。。HMC5883也是一样。
然后怎么读MPU6050,你就怎么读HMC5883,过程是完全一样的,注意改一下地址就行了。
你读MPU6050时,只需要读一个X轴,然后把缓存区设成长度为6,它就能把XYZ三轴的高低位都读出来。HMC5883也是一样。只需要去读第一个X轴的地址。 |
|