找回密码
 立即注册
查看: 1391|回复: 3

关于I2C主从机速度和传输问题请教

[复制链接]

1

主题

1

回帖

11

积分

新手上路

积分
11
发表于 2022-11-21 14:25:08 | 显示全部楼层 |阅读模式
单片机初学者一枚,最近申请了STC芯片,关于I2C有问题请教:
1、看资料I2C从机不能设置I2C速度,是不是根据主机的I2C时钟速度来的?

2、在从机代码里,怎样知道主机来读数据了呢,主机读的命令,从机在哪里知道的?主机和从机串口都是通的,有打印信息输出
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:248
  • 最近打卡:2025-04-27 09:57:01
已绑定手机

24

主题

756

回帖

3315

积分

超级版主

积分
3315
QQ
发表于 2022-11-21 14:32:57 | 显示全部楼层
1、从机是不能设置速度,是自适应主机速度的。

2、接收完再打印,不要在中断里面打印信息,避免影响实时接收,可以通过IO口翻转判断是否执行了中断流程。我们官方提供的例程上(可在STC-ISP下载软件V6.90U或者数据手册等上找到例程),除了I2C通道跟串口外,其它都先不要改,避免改错或者部分内容没移植完整导致功能失效。
  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-30 14:38:57

25

主题

977

回帖

3599

积分

超级版主

积分
3599
发表于 2022-11-22 13:13:37 | 显示全部楼层
在楼上的基础上补充一小点点:
作为从机是不可能知道主机什么时候要读数据,所以需要先准备好数据,随时准备主句来读取
具体操作:从机在匹配到从机设备地址,并检测到设备地址的最后一个R/W位为1
则表示接下来主机要读取数据了,这时从机需要先将数据预先准备到I2CTXD寄存器中
当主机的SCL时钟再次到达从机时,硬件便会自动将I2CTXD寄存器中的数据发送给主机了

1

主题

1

回帖

11

积分

新手上路

积分
11
发表于 2022-11-23 15:45:42 | 显示全部楼层
感谢楼上大佬解答,涨知识啦!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 20:27 , Processed in 0.105083 second(s), 70 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表