之前IIC时序有问题,修改后能读到器件地址是104。之后还是不能成功获取pitch、roll、yaw,一开始发现mpu_dmp_init初始化中自检失败,注释自检后发现dmp_get_data中的dmp_read_fifo出错。能读到器件地址能否说明IIC时序没有问题,那问题应该 是出在哪里呢?
顺带一提,之前时序出现问题是被中断打断了,之后采用关中断,cpu空转的方式延时,不是特别精准,原本正点例程延时2us的地方也延时了4us左右,但对IIC影响应该是不大的。但现在dmp_read_fifo出错,应该是哪方面的问题呢?部分程序和串口输出如图。
串口打印数据显示传感器数据能正常读取,但不确定这数据是否准确,其中res是mpu_dpm_init的返回值
在mpu_init中打印出读取到的器件地址,注释了以x轴作为参考
read_fifo,串口返回数据显示就是这里出错
|