[APM32F1] 两次I2C主模式下通讯的间隔有要求吗

[复制链接]
 楼主| 雾里闲逛 发表于 2025-5-30 09:02 | 显示全部楼层 |阅读模式
如题
如果使用APM32F103的I2C的主模式下,两次I2C通讯的发起有时间间隔的要求吗?
我发现有的时候第二次I2C通讯中,从地址不ack我。

Gfan 发表于 2025-5-30 16:28 | 显示全部楼层
是有的,具体可以参考F103手册 5377968396c1638047.png
夜幕叙事曲 发表于 2025-5-30 22:53 | 显示全部楼层
您这个从机不应答 是不是从机正在干活,本身就是没有ready状态下
涡流远见者 发表于 2025-5-31 08:49 | 显示全部楼层
I2C通讯两次发起并没有啥设置,硬件会自行完成。
但从机可不是必须应答
星云避风港 发表于 2025-5-31 14:44 | 显示全部楼层
这个太有学问了,还真没有注意到这个知识点
DawnFervor 发表于 2025-6-1 21:16 | 显示全部楼层
自己是master的没有必要。只要检查到当前I2C总线已经ready了就代表了上一次发送已完成。
版主的截图是硬件实现的。
VelvetNight 发表于 2025-6-3 19:12 | 显示全部楼层
I2C通讯的难度有这么大吗?
modesty3jonah 发表于 2025-6-4 09:02 | 显示全部楼层
从一个通信周期的 Stop 条件结束,到下一个通信周期的 Start 条件开始之间的最小时间间隔。
bartonalfred 发表于 2025-6-4 10:26 | 显示全部楼层
较大的上拉电阻会延长 SDA/SCL 信号的上升时间,需适当增加总线空闲时间。
pentruman 发表于 2025-6-4 11:22 | 显示全部楼层
总线上所有设备有足够时间释放 SDA 和 SCL 线,并准备好接收新的通信。
HeartbeatEcho 发表于 2025-6-4 11:33 | 显示全部楼层
主机在发送需要检查一下当前I2C总线是否处于空闲。如果空闲则继续发送,否则要么阻塞,要么退出。
51xlf 发表于 2025-6-4 12:36 | 显示全部楼层
标准模式(100kHz):≥ 4.7μs
快速模式(400kHz):≥ 1.3μs
高速模式(3.4MHz):≥ 0.6μs
louliana 发表于 2025-6-4 14:04 | 显示全部楼层
​​电容负载与信号完整性​​:
chenci2013 发表于 2025-6-4 15:51 | 显示全部楼层
使用高优先级任务处理 I2C 通信,或实现忙等待延时。
belindagraham 发表于 2025-6-4 17:33 | 显示全部楼层
为了避免这种情况,通常建议在两次I2C通信之间留出足够的时间间隔,以便从设备完成当前的操作并准备好接收新的通信。
jonas222 发表于 2025-6-5 11:44 | 显示全部楼层
5~100ms              
rosemoore 发表于 2025-6-5 13:32 | 显示全部楼层
合理控制两次 I2C 通信的间隔时间
SpiritSong 发表于 2025-6-5 14:43 | 显示全部楼层
每次都周期性的读取从设备
pmp 发表于 2025-6-5 15:14 | 显示全部楼层
限制总线长度(通常<50cm)              
幻影书记 发表于 2025-6-5 16:39 | 显示全部楼层
I2C还有这么多的边界条件呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

43

帖子

0

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