关于I2C主从机速度和传输问题请教
单片机初学者一枚,最近申请了STC芯片,关于I2C有问题请教:1、看资料I2C从机不能设置I2C速度,是不是根据主机的I2C时钟速度来的?
2、在从机代码里,怎样知道主机来读数据了呢,主机读的命令,从机在哪里知道的?主机和从机串口都是通的,有打印信息输出
1、从机是不能设置速度,是自适应主机速度的。
2、接收完再打印,不要在中断里面打印信息,避免影响实时接收,可以通过IO口翻转判断是否执行了中断流程。我们官方提供的例程上(可在STC-ISP下载软件V6.90U或者数据手册等上找到例程),除了I2C通道跟串口外,其它都先不要改,避免改错或者部分内容没移植完整导致功能失效。 在楼上的基础上补充一小点点:
作为从机是不可能知道主机什么时候要读数据,所以需要先准备好数据,随时准备主句来读取
具体操作:从机在匹配到从机设备地址,并检测到设备地址的最后一个R/W位为1
则表示接下来主机要读取数据了,这时从机需要先将数据预先准备到I2CTXD寄存器中
当主机的SCL时钟再次到达从机时,硬件便会自动将I2CTXD寄存器中的数据发送给主机了
感谢楼上大佬解答,涨知识啦!
页:
[1]