朝九晚六搬砖人 发表于 2022-11-21 14:25:08

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

单片机初学者一枚,最近申请了STC芯片,关于I2C有问题请教:
1、看资料I2C从机不能设置I2C速度,是不是根据主机的I2C时钟速度来的?

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

8051启蒙者 发表于 2022-11-21 14:32:57

1、从机是不能设置速度,是自适应主机速度的。

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

zhp 发表于 2022-11-22 13:13:37

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

朝九晚六搬砖人 发表于 2022-11-23 15:45:42

感谢楼上大佬解答,涨知识啦!
页: [1]
查看完整版本: 关于I2C主从机速度和传输问题请教