在调试一个自己做的手环,每次用keil烧写好程序运行的蓝牙、陀螺仪都是正常的。但是掉电再上电之后蓝牙是好的、陀螺仪可以读出ID但是读出的加速度和角速度数据全为0。
下面是发生问题时main函数的前面部分:
首先看到一篇:《mpu6050需要一段时间上电然后再初始化!!》的文章,于是在前面加了个延时。
下面是添加一个延时的main函数前部分:
不过,还是有相同的问题!
然后,又找了一个《TM4C123GxL MPU6050读出陀螺仪和加速度计的值全为0》的文章,他出现的情况和我的非常像!
下面是作者最后给出的总结:
我根据他结论的第二点把代码做如下修改最终解决了问题:
1.将I2C初始化函数放在后面,main函数刚开始加延时
2.mpu6050初始化进行循环初始化直到写入成功