[STM32F1] 用 F103 搞 I2C 主机模式,总掉总线咋回事?

[复制链接]
1083|17
 楼主| 周半梅 发表于 2025-6-12 07:19 | 显示全部楼层 |阅读模式
刚一启动主机就拉着 SCL 不放,外设不认,感觉起始条件没跑成功。
Clyde011 发表于 2025-6-12 07:24 | 显示全部楼层
多设备挂总线时很容易冲突,建议单独测试下。
公羊子丹 发表于 2025-6-12 07:25 | 显示全部楼层
F1 的 I2C 好像本来就挺玄学的……
 楼主| 周半梅 发表于 2025-6-12 07:27 | 显示全部楼层
我之前改用软件模拟 I2C 就没问题了。
帛灿灿 发表于 2025-6-12 07:28 | 显示全部楼层
会不会是从机没响应 ACK?
童雨竹 发表于 2025-6-12 07:29 | 显示全部楼层
看下是不是主机发完没 STOP,卡住了。
万图 发表于 2025-6-12 07:30 | 显示全部楼层
CubeMX 自动生成的不一定靠谱,建议手写。
Wordsworth 发表于 2025-6-12 07:31 | 显示全部楼层
注意 F1 的 I2C 有个 bug,需要加清除逻辑。
Bblythe 发表于 2025-6-12 07:32 | 显示全部楼层
我都是加个超时自动重启 I2C 总线。
Pulitzer 发表于 2025-6-12 07:32 | 显示全部楼层
会不会是 GPIO 没配置成 open-drain?
Uriah 发表于 2025-6-12 07:33 | 显示全部楼层
你用的是哪个唤醒源?会影响 GPIO 状态。
classroom 发表于 2025-6-12 12:39 | 显示全部楼层
引脚配置成推挽输出模式,会导致总线异常。
duo点 发表于 2025-6-12 12:44 | 显示全部楼层
可添加超时处理机制,避免程序一直等待检测应答信号。
flycamelaaa 发表于 2025-6-12 14:00 | 显示全部楼层
未正确配置上拉电阻或存在电源噪声干扰,会使 I2C 总线上出现毛刺或上升沿缓慢,导致通信失败。
probedog 发表于 2025-6-12 14:36 | 显示全部楼层
总线时钟频率过高或过低、数据传输速率不匹配?
powerantone 发表于 2025-6-12 15:00 | 显示全部楼层
引脚连接错误、总线线路短路或断路,会引发通信故障。
stormwind123 发表于 2025-6-12 18:00 | 显示全部楼层
设备地址冲突?
classroom 发表于 2025-6-12 18:36 | 显示全部楼层
未正确处理应答信号,可能导致通信中断。
onlycook 发表于 2025-6-12 19:00 | 显示全部楼层
中断优先级不合理吧。。
七毛钱 发表于 2025-6-12 19:59 | 显示全部楼层
中断服务函数中未正确处理 I2C 事件,或处理时间过长
您需要登录后才可以回帖 登录 | 注册

本版积分规则

182

主题

6293

帖子

1

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