[STM32F4] STM32F407中的IIC问题

[复制链接]
798|17
 楼主| 咚了个咚 发表于 2025-5-8 22:48 | 显示全部楼层 |阅读模式
过 I2c 将读写 MPU9150 传感器。问题是我无法与传感器通信。使用逻辑分析仪,看到IIC发出 SDA 和 SCL 信号,但传感器以 NACK 回答。如果用读操作,在逻辑分析仪上能看到正确的从地址 (0x69),但如果我用写操作,会看到错误的从地址 (0x68) 。
程序时使用 STM32CUBEIDE 生成,并使用 I2C1的默认配置,未启用滤波器,上升时间和下降时间设置为零。

两只袜子 发表于 2025-5-9 11:17 | 显示全部楼层
从机地址与硬件连接需一致。
jcky001 发表于 2025-5-9 11:18 | 显示全部楼层
I2C1的配置是否正确?
cr315 发表于 2025-5-9 11:18 | 显示全部楼层
I2C配置有误吧。
elephant00 发表于 2025-5-9 11:19 | 显示全部楼层
上逻辑分析仪检查。
duo点 发表于 2025-5-9 11:20 | 显示全部楼层
传感器初始化是否正确?检查传感器的电源和复位信号是否正确连接和配置。
公羊子丹 发表于 2025-5-25 07:34 | 显示全部楼层
MPU9150 的地址是看 AD0 脚电平的,确定它是接地还是上拉了吗?
周半梅 发表于 2025-5-25 07:34 | 显示全部楼层
看上去你读写时地址错位了,是不是没把地址左移一位?
帛灿灿 发表于 2025-5-25 07:35 | 显示全部楼层
STM32 的 HAL 库函数里地址是7位的,别手动加读写位哦。
童雨竹 发表于 2025-5-25 07:36 | 显示全部楼层
逻辑分析仪看到0x68写操作没响应,可能是设备没上电?
万图 发表于 2025-5-25 07:37 | 显示全部楼层
有些 I2C 设备启动后需要等待时间,MPU9150你等够了吗?
Wordsworth 发表于 2025-5-25 07:38 | 显示全部楼层
滤波器和上升/下降时间设置一般不用改,默认就可以。
Bblythe 发表于 2025-5-25 07:39 | 显示全部楼层
写操作出现NACK,可能是设备没准备好接收,试试加点延时。
Pulitzer 发表于 2025-5-25 07:40 | 显示全部楼层
建议用 I2C_Scan 先扫一下,看看设备地址到底是哪个。
Uriah 发表于 2025-5-25 07:41 | 显示全部楼层
地址错写一个bit也会直接NACK,检查 HAL 函数的地址填法。
Clyde011 发表于 2025-5-25 07:42 | 显示全部楼层
换根杜邦线试试,有时接触不好也会导致 NACK。
gaonaiweng 发表于 2025-5-31 17:58 | 显示全部楼层
你的代码传入的地址是否是 (0x69 << 1) ,还是直接写了 0x69 ?

您需要登录后才可以回帖 登录 | 注册

本版积分规则

59

主题

68

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部