你好,请帮助,我构建和调试(uart接口)的i2c_eeprom示例没有任何修改。我没有连接任何eeprom引脚P0_2和P0_3。所以在putty终端一定要打印出一些错误代码,但是代码操作卡住了某个地方。这里我清除了所有的测试,但测试4,我把一些日志在项目中,我发现代码操作卡在WAIT_UNTIL_I2C_FIFO_IS_EMPTY();如何修复这个错误??谢谢
我尝试用我的ds3231 rtc模块进行测试。我将地址从地址设置为0x68。试着从地址02h读取一个字节。代码卡在WAIT_FOR_RECEIVED_BYTE();我不知道如何修复这个,我尝试了另一个ds1307,同样的错误发生了
当我使用eeprom AT24C256时,构建和调试代码(没有修改,地址是0x50)相同的错误发生,但从eeprom读取时卡在测试2
设备:
嗨Thanhtu131,
您正在使用SDK I2C示例代码吗?您是否向正在使用的i2C接口发送了正确的命令?
谢谢,PM_Dialog
是的,我使用了SDK 5.0.4 I2C示例代码。我可以读取ds1307数据一对时间,然后我不能再次读取它,我试图再次下载SDK a并运行它,但错误仍然发生。可能是DA14580硬件错误吗?因为我可以使用ds1307模块正常与我的raspberry pi3+(i2c接口)。DA14580 i2c FIFO寄存器是否已经损坏?
我试图禁用所有的读取测试并连接eeprom。所有的写测试工作,但它适用于我定义的所有从地址(0x12, 0x15,0x50),而只有0x50是正确的。再次,当我启用读测试2时,代码停留在WAIT_FOR_RECEIVED_BYTE()为我定义的每个地址
嗨Thanhtu131,
您正在使用的Τhe I2C驱动程序用于连接EEPROM内存。实现是通过发送0x08轮询内存(如果内存已经准备好操作)并等待来自另一端的ACK。
对于WAIT_FOR_RECEIVE_BYTE(),宏检查计数接收数据的寄存器,如果你停留在那里,这意味着对方还没有给你发送任何东西。
检查您的连接上的线路和通过I2C总线的事务的状态,以检查您的I2C接口是否响应驱动程序发送的数据。另外,检查您正在发送的命令。
谢谢,PM_Dialog