打印
[APM32F1]

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

[复制链接]
244|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如题
如果使用APM32F103的I2C的主模式下,两次I2C通讯的发起有时间间隔的要求吗?
我发现有的时候第二次I2C通讯中,从地址不ack我。

使用特权

评论回复
沙发
Gfan| | 2025-5-30 16:28 | 只看该作者
是有的,具体可以参考F103手册

使用特权

评论回复
板凳
夜幕叙事曲| | 2025-5-30 22:53 | 只看该作者
您这个从机不应答 是不是从机正在干活,本身就是没有ready状态下

使用特权

评论回复
地板
涡流远见者| | 2025-5-31 08:49 | 只看该作者
I2C通讯两次发起并没有啥设置,硬件会自行完成。
但从机可不是必须应答

使用特权

评论回复
5
星云避风港| | 2025-5-31 14:44 | 只看该作者
这个太有学问了,还真没有注意到这个知识点

使用特权

评论回复
6
DawnFervor| | 2025-6-1 21:16 | 只看该作者
自己是master的没有必要。只要检查到当前I2C总线已经ready了就代表了上一次发送已完成。
版主的截图是硬件实现的。

使用特权

评论回复
7
VelvetNight| | 2025-6-3 19:12 | 只看该作者
I2C通讯的难度有这么大吗?

使用特权

评论回复
8
modesty3jonah| | 2025-6-4 09:02 | 只看该作者
从一个通信周期的 Stop 条件结束,到下一个通信周期的 Start 条件开始之间的最小时间间隔。

使用特权

评论回复
9
bartonalfred| | 2025-6-4 10:26 | 只看该作者
较大的上拉电阻会延长 SDA/SCL 信号的上升时间,需适当增加总线空闲时间。

使用特权

评论回复
10
pentruman| | 2025-6-4 11:22 | 只看该作者
总线上所有设备有足够时间释放 SDA 和 SCL 线,并准备好接收新的通信。

使用特权

评论回复
11
HeartbeatEcho| | 2025-6-4 11:33 | 只看该作者
主机在发送需要检查一下当前I2C总线是否处于空闲。如果空闲则继续发送,否则要么阻塞,要么退出。

使用特权

评论回复
12
51xlf| | 2025-6-4 12:36 | 只看该作者
标准模式(100kHz):≥ 4.7μs
快速模式(400kHz):≥ 1.3μs
高速模式(3.4MHz):≥ 0.6μs

使用特权

评论回复
13
louliana| | 2025-6-4 14:04 | 只看该作者
​​电容负载与信号完整性​​:

使用特权

评论回复
14
chenci2013| | 2025-6-4 15:51 | 只看该作者
使用高优先级任务处理 I2C 通信,或实现忙等待延时。

使用特权

评论回复
15
belindagraham| | 2025-6-4 17:33 | 只看该作者
为了避免这种情况,通常建议在两次I2C通信之间留出足够的时间间隔,以便从设备完成当前的操作并准备好接收新的通信。

使用特权

评论回复
16
jonas222| | 2025-6-5 11:44 | 只看该作者
5~100ms              

使用特权

评论回复
17
rosemoore| | 2025-6-5 13:32 | 只看该作者
合理控制两次 I2C 通信的间隔时间

使用特权

评论回复
18
SpiritSong| | 2025-6-5 14:43 | 只看该作者
每次都周期性的读取从设备

使用特权

评论回复
19
pmp| | 2025-6-5 15:14 | 只看该作者
限制总线长度(通常<50cm)              

使用特权

评论回复
20
幻影书记| | 2025-6-5 16:39 | 只看该作者
I2C还有这么多的边界条件呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

22

帖子

0

粉丝