我正在STM32 F107上开发一个嵌入式系统,它通过i2c与2个从属设备进行通信:一个rfid阅读器rfid manual和一个eeprom模块eeprom manual。 这两个器件具有相同的从地址A0(用于写操作)和A1(用于读操作)。 如果只使用一个设备,它可以正常工作。但如果我同时使用它们,我就会遇到问题。 首先我从rfid阅读器读取卡片ID,然后我在eeprom中写入它(直到这里一切都好),当我尝试从rfid阅读器再次读取时,我得到错误的输入数据,即使是我换了卡。 发生了什么以及如何解决问题?
答案 0 :(得分:9)
设备必须具有不同的地址。您应该重新配置任一设备以使用不同的地址以避免冲突。这通常通过跳线(rfid阅读器上的JP1,JP2)或通过硬件连接芯片上的某些地址引脚(eeprom芯片上的A0和A1引脚)来完成。
答案 1 :(得分:1)
如果没有可用于移动I2C设备的额外引脚,请尝试使用i2c缓冲区或i2c MUX。