最近想做一个运动手环,计步的传感器使用了MPU6050,在移植正点原子库时遇到了问题,那就是MPU6050重启一直失败。
经过debug发现,是在运行mpu_dmp_init()时出错,将错误码打印出来:

报的故障码为8

表示自检运行时出错
跳转到内部进行debug

发现与result 值有关,将其打印出来

result为2
继续跳转到内部进行debug
发现与result有关的为:

将accel_result和gyro_result打印出来

发现是accel_self_test函数中出错,进入debug

这边是将读取的值与之前所定义的值作比较,分别打印出来查看

可以看到是由于读取到的值大于max_accel_var导致的
根据自己的实际情况修改max_accel_var,我将其修改为0.19f后成功解决问题。


出现这个问题的原因还是在于放得不够平。
MPU6050传感器使用DMP库重启失败问题解决办法
最新推荐文章于 2025-05-05 20:37:05 发布
在开发运动手环时遇到MPU6050重启失败的问题,经调试发现在mpu_dmp_init()函数中出错,错误码8指向自检运行时错误。深入debug发现错误源于accel_self_test函数,读取的加速度值大于预设的最大变量max_accel_var。调整max_accel_var为0.19f后,问题得到解决,原因可能是手环放置不平导致的传感器读数异常。
1777

被折叠的 条评论
为什么被折叠?



