本帖最后由 小白来学习 于 2016-7-28 17:45 编辑
众所众知,SPI的读写速度非常诱人,对于MPU9250而言,除了加速度、陀螺仪外,新增了磁力计模块,但是磁力计模块只支持I2C的读写,
为了能够利用起SPI的优势,此时MPU 内部的i2c Master功能为此提供了方便
楼主不才,花了一些功夫,仔细研读了MPU9250 datasheet 整理出SPI读取MPU9250全套工程源码,亲测可用。
楼主觉得有需要注意之处,都配有详细注释(若有不对之处请多多包涵)
希望能提供给大家一些参考价值(工程已打包附件,内附MPU datasheet资料及i2c源码)
MPU9250.rar
(9.73 MB, 下载次数: 179484)
2016-7-28 17:27 上传
点击文件名下载附件
下图为楼主SPI读取9轴数据——Jlink仿真结果
file:///C:UsersAdministratorAppDataRoamingTencentUsers312485168QQWinTempRichOleCG]XJ9D7$UK%PI00)8D90R0.png
感谢回复!最后我设置了加速度陀螺仪200hz,磁力计60几hz读取,就是说检测磁力计数据没准备好的话,就直接跳过不更新(磁力计循环采样是100hz) // i2c_Mag_write(AK8963_CNTL1_REG,0x01);
flag1 = i2c_Mag_read(AK8963_ST1_REG);
flag2 = i2c_Mag_read(AK8963_ST2_REG);
if(!(flag1 & AK8963_STATUS_DRDY) || (flag1 & AK8963_STATUS_DOR) || (flag2 & AK8963_STATUS_HOFL))
return;
一周热门 更多>