周半梅 发表于 2025-6-12 07:19

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

刚一启动主机就拉着 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 事件,或处理时间过长
页: [1]
查看完整版本: 用 F103 搞 I2C 主机模式,总掉总线咋回事?