欢迎光临散文网 会员登陆 & 注册

MPU6050 使用注意事项

2022-03-28 21:35 作者:云汉含星  | 我要投稿

正点原子的MPU6050很多时候会突然莫名奇妙的抽风...

我一度以为是传感器坏掉的原因,但是实际上传感器时好时坏。我就做了一些尝试,查看DMP输出到底卡在了那里,因为什么导致了MPU6050不能正常工作。

DMP输出主要卡在一下地方。

  • 连接失败

    这个我实测,只有给mpu6050芯片重新上电来的实在。重新上电,然后重新运行程序。

  • DMP的初始化失败(自检失败)

    一定要保持稳定的连接!!!初始化的时候最好不要乱动,不要用手碰传感器的引脚,尤其实杜邦线连接的!!!我相当一部分时间都是拿在手里测试的,所以总是出问题。手触碰引脚的时候会造成一个突然的毛刺。在初始化的时候,可能就是因为这个毛刺,导致了DMP的初始化失败。

  • DMP初始化成功,但是读不到数据

    这是因为读取dmp的buffer 的时候出现了问题。可以尝试一下重启程序。如果重启不能解决问题。那就需要给传感器断电。(先按住reset,让程序不运行,然后给传感器断电,上电,再松开reset。这样子可以保证下一次如果初始化成功了,那就能读到数据)

  • DMP刚开始可以正常输入输出,但是突然间挂掉了。

    这个是因为供电出现了一下问题,给mpu重新上电,然后重启程序。不用怀疑数据线出了问题,因为IIC读取出现错误的话,hal库应该会报错,但是当数据线重新连接之后,就能够正常的读取数据了。

    一般来说这个初始化都是写在setup里面的,而不是在loop里面。所以这个问题只能通过物理的reset来处理。所以在读取的时候,所以应该添加一个变量来监测,当DMP没有准备好,或者buffer没有准备好的时候,就重启一下DMP。如我下面的做法。

    这个flag最好不要使用bool类型的值来作为判断。因为在实际的测试中发现,第一次读取到值的时候,第二次数据一定会出问题(我使用的库是这样子的,可能是库有bug)。在这之后的一直正常。再一个就是当电源出现非常短暂的接触不良的时候,其实是可以续上的。所以这个时候就可以认定为没有问题。如果多次获取数据出现问题,就说明需要重启mpu6050。

    这样子可以一下子知道问题出现再哪个地方,遇到不严重的,他自己就能重启DMP。如果这个反复运行这个重启DMP的程序,说明有地方一直过不去,给mpu断一下电就可以了。

MPU6050 使用注意事项的评论 (共 条)

分享到微博请遵守国家法律