对于单一分配,我需要使用I2C / TWI才能以双向方式与从设备通信。主设备需要接收和发送,并且对于从设备也是如此。
然而,我对如何处理这个问题很感兴趣。我知道主机有一个主接收器模式,但由于我不知道主机何时需要读写,我不知道如何处理它。
有人能在这里向我推进正确的方向吗?
答案 0 :(得分:1)
研究可以发送和接收数据的其他I2C从设备可能会有所帮助,例如LSM6DS33加速器/陀螺仪和this library for it。
要从从设备接收数据,主设备必须启动I2C读传输。传输的第一个字节中有一位必须将主机设置为特定值以指示它是读传输还是写传输。根据设备的工作方式,主设备可能会在读取传输之前发送写入传输,以指定要读取的寄存器的地址,但这不是普遍要求的。
主人有很多方法可以决定何时进行阅读。某些I2C器件具有中断引脚,可以驱动为低电平或高电平,以指示有新数据需要读取。主设备可以读取一个寄存器,指示数据何时准备就绪。或者主人可以连续读取数据。正确的方法取决于您正在做的事情的细节。但请记住,读取总是由主设备启动,因为从设备需要有一些机制来存储数据,直到主设备准备好读取它。