我们正在使用da14531开发工具包,并试图与两个i2c传感器,azotec轨迹板模块和mcp23017 gpio扩展器进行通信。我们已经为这些模块编写了驱动程序,并且能够独立地与模块进行通信,但是当我们同时尝试与这两个模块进行通信时,我们面临一个问题。在我们的代码中,我们将i2c配置结构声明为
//I2C静态常量I2C\u cfg\u t I2C\u cfg={.clock\u cfg.ss\u hcnt=I2C\u ss\u SCL\u hcnt\u regu RESET、.clock\u cfg.ss\u lcnt=I2C\u ss\u SCL\u lcnt\u regu RESET、.clock\u cfg.fs\u hcnt=I2C\u fs\u SCL\u hcnt\u regu RESET、.clock\u cfg.fs\u lcnt=I2C\u fs\u SCL\u lcnt\u regu RESET、.restart\u en=I2C\u restart启用、.speed=I2C\u FAST、.mode=I2C\u mode\u MASTER、,.addr\u mode=I2C\u ADDRESSING\u 7B,.address=MCP23017\u address,.tx\u fifo\u level=1,.rx\u fifo\u level=1,};
每次我们与i2c设备通信时,我们都在设置功能
i2c\设置\目标\地址(i2c设备\地址);
并尝试与设备通信。
您能给我们举几个例子说明如何与多个i2c设备同时通信吗。我们看了eeprom的例子,但事情还不清楚。非常感谢你的帮助。
你好,斯利帕蒂,
谢谢你的问题。所以,如果我能正确理解,您的要求是连接2个I2C从机到同一总线。我的理解正确吗?
谢谢,下午好
你好,
是的
您能告诉我们两个i2c从机的工作示例吗。谢谢
你好,斯利帕蒂,
谢谢你的澄清。没有这样的例子,不可能在同一总线上同时与2个I2C从机交互。您应该同时只与一个从机交互。
谢谢,下午好
你好,
不确定它是否仍然相关,我通过创建一个i2c\u target\u select函数来解决它,该函数用一组新的参数(例如不同的目标地址)重新初始化i2c外围设备。严格来说,通信不是同时进行的,而是按顺序进行的,一次传输完成后,另一次传输就开始了。
不幸的是,只有当i2c外设被禁用时,i2c\ u set\ u target\ u address函数才能被调用,i2c\ u init使用它来设置外设。
比尔,J
你好,杰斯盖德,
感谢您的评论和反馈!
谢谢,下午好