在调试一个自己做的手环,每次用keil烧写好程序运行的蓝牙、陀螺仪都是正常的。但是掉电再上电之后蓝牙是好的、陀螺仪可以读出ID但是读出的加速度和角速度数据全为0。

下面是发生问题时main函数的前面部分:

[异常解决] MPU6050启动异常读出陀螺仪和加速度计的值全为0的解决办法-LMLPHP

首先看到一篇:《mpu6050需要一段时间上电然后再初始化!!》的文章,于是在前面加了个延时。

下面是添加一个延时的main函数前部分:

[异常解决] MPU6050启动异常读出陀螺仪和加速度计的值全为0的解决办法-LMLPHP

不过,还是有相同的问题!

然后,又找了一个《TM4C123GxL MPU6050读出陀螺仪和加速度计的值全为0》的文章,他出现的情况和我的非常像!

下面是作者最后给出的总结:

我根据他结论的第二点把代码做如下修改最终解决了问题:

1.将I2C初始化函数放在后面,main函数刚开始加延时

2.mpu6050初始化进行循环初始化直到写入成功

[异常解决] MPU6050启动异常读出陀螺仪和加速度计的值全为0的解决办法-LMLPHP

04-14 22:45