暑假这几天没事,就花了点时间研究STM32,然后就看到了MPU6050,在网上买了一个模块到了之后,开始半移植半写,首先,由于我之前写过OLED的IIC模式显示,所以我就直接把IIC拷贝了过来,然后其余的程序一直参考原子的程序再写,写完之后发现出现了一个问题始终解决不了,就是在mpu_dmp_init()的时候程序就会直接死在里面,然后进去看了这个函数,主要是mpu_init()的问题,然后进这个函数,调试了几次发现rev这个值每次都会等于0x06,然后程序就会直接跳出去打印,然后就在网上疯狂找资料,找问题,一直没有结果,然后今天早上一个偶然的机会我终于发现了问题,就是IIC的问题,虽然我的IIC在之前能够显示OLED,而且也能够显示MPU6050的原始数据和温度值,但是在DMP的初始化上了,IIC的时序问题更大,不管之前的IIC有多好,建议一定要参照移植前的程序,严格的写IIC。图片为串口打印的欧拉角数据。