一、问题:
在配置好IIC,准备读取WHAMI寄存器检测通讯和器件的时候,读取不到数值,定位发现MPU6050没返回ACK。
二、解决:
1.检查硬件:
MPU引脚连接正确,也参考了网上别人的连法。
MPU亮红灯,理论上是正常上电状态。
MPU引脚 与MCU 引脚导通正常。
2.检查IIC时序:
使用keil的逻辑分析仪,IIC波形正常(IIC时钟频率会向低的一方妥协,因此频率不需要检查)
3. 检查代码流程:
读取寄存器的流程跟官方文档一致
读取地址、寄存器地址无误
初始化步骤???这里想起来官方文档有一句话,MPU PWR寄存器的上电默认值是睡眠状态,因此需要在读取WHOAMI之前,先取消睡眠!!!最好取消睡眠后先延时20ms,官方文档推荐的上电初始化时延,然后问题解决!!!!