乐鑫技术交流
直播中

张健

7年用户 1385经验值
私信 关注
[问答]

esp8684 i2c连续写17字节或以上字节就返回超时错误怎么解决?

esp8684 i2c连续写17字节或以上字节就返回超时错误,写16个字节以内就正常写入。返回超时后sda线一直被拉低,复位芯片后还是一直拉低,只有断电重上电sda才 能恢复高电平,同样代码用esp32c3正常

回帖(1)

人走了

2024-6-12 16:27:58
以下是一些建议来解决这个问题:

1. **降低I2C时钟频率**:尝试降低I2C通信的时钟频率,以减少数据传输过程中的超时问题。在ESP8266中,可以通过修改I2C初始化代码来实现。

2. **分批传输数据**:如果可能的话,尝试将较大的数据包分成较小的数据包进行传输。例如,如果需要发送20个字节,可以分成两个10字节的数据包进行传输。

3. **检查硬件连接**:确保I2C总线上的所有设备都正确连接,并且没有短路或接触不良的问题。检查电源和地线是否稳定。

4. **使用外部I2C驱动器**:如果ESP8266的内置I2C驱动器无法满足需求,可以考虑使用外部I2C驱动器来提高性能。

5. **软件优化**:检查代码中是否有可能影响I2C通信的部分,例如延时、循环等待等。优化这些部分可以提高通信效率。

6. **升级固件**:检查是否有适用于ESP8266的新固件版本,新版本可能修复了一些已知的问题。

7. **使用其他通信协议**:如果I2C通信问题无法解决,可以考虑使用其他通信协议,如SPI或UART,来实现类似的功能。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分