STM32F407中的IIC问题
过 I2c 将读写 MPU9150 传感器。问题是我无法与传感器通信。使用逻辑分析仪,看到IIC发出 SDA 和 SCL 信号,但传感器以 NACK 回答。如果用读操作,在逻辑分析仪上能看到正确的从地址 (0x69),但如果我用写操作,会看到错误的从地址 (0x68) 。程序时使用 STM32CUBEIDE 生成,并使用 I2C1的默认配置,未启用滤波器,上升时间和下降时间设置为零。从机地址与硬件连接需一致。 I2C1的配置是否正确? I2C配置有误吧。 上逻辑分析仪检查。 传感器初始化是否正确?检查传感器的电源和复位信号是否正确连接和配置。 MPU9150 的地址是看 AD0 脚电平的,确定它是接地还是上拉了吗? 看上去你读写时地址错位了,是不是没把地址左移一位? STM32 的 HAL 库函数里地址是7位的,别手动加读写位哦。 逻辑分析仪看到0x68写操作没响应,可能是设备没上电? 有些 I2C 设备启动后需要等待时间,MPU9150你等够了吗? 滤波器和上升/下降时间设置一般不用改,默认就可以。 写操作出现NACK,可能是设备没准备好接收,试试加点延时。 建议用 I2C_Scan 先扫一下,看看设备地址到底是哪个。 地址错写一个bit也会直接NACK,检查 HAL 函数的地址填法。 换根杜邦线试试,有时接触不好也会导致 NACK。 你的代码传入的地址是否是 (0x69 << 1) ,还是直接写了 0x69 ?
页:
[1]