你好,请帮忙,我建立和调试(uart接口)的i2cèeeprom的例子没有任何修改。我没有连接任何eeprom引脚P0\ 2和P0\ 3。所以在putty终端必须打印出一些错误代码,但是代码操作卡在了某个地方。在这里,我清除了除测试4之外的所有测试,我在项目中放置了一些日志,我发现代码操作停留在WAIT_,直到_I2C_FIFO_为_EMPTY();如何修复此错误??谢谢
我试着用ds3231rtc模块进行测试。我将地址从地址设置为0x68。并尝试从中读取地址02h处的1个字节。代码停留在WAIT_FOR_RECEIVED_BYTE();我不知道如何解决这个问题,我尝试了另一个ds1307,同样的错误发生了
当我使用eeprom AT24C256,构建和调试代码(没有修改,地址是0x50)时,同样的错误也会发生,但是在从eeprom读取时被卡在测试2中
设备:

你好,Thanhtu131,
你使用的是sdki2c示例代码吗?您是否向正在使用的i2C接口发送了正确的命令?
谢谢,下午好
是的,我用的是sdk5.0.4i2c示例代码。我可以读取ds1307数据一对夫妇的时间,然后我不能再读取它,我试图再次下载sdk a和运行它,但错误仍然发生。可能是DA14580硬件错误吗?因为我可以正常使用ds1307模块和我的raspberry pi3+(i2c接口)。DA14580 i2c FIFO寄存器是否损坏?
我试图禁用所有的读取测试和连接eeprom。所有写测试都可以工作,但它对我定义的所有从机地址(0x12、0x15、0x50)都有效,而只有0x50是正确的。再一次,当我启用readtest2时,代码停留在WAIT_FOR_RECEIVED_BYTE(),用于我定义的每个地址
你好,Thanhtu131,
Τ您正在使用的I2C驱动程序用于连接EEPROM存储器。该实现通过发送0x08轮询内存(如果内存准备好运行),并等待另一侧的ACK。
关于WAIT_FOR_RECEIVE_BYTE(),宏检查对接收到的数据进行计数的寄存器,如果您停留在那里,则表示另一方尚未向您发送任何内容。
检查连接线路的状态和I2C总线上的事务,以便检查I2C接口是否响应驱动程序发送的数据。另外,检查您正在发送的命令。
谢谢,下午好