STM32
直播中

杨春林

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

STM32F103利用软件模拟I2C读写EEPROM,超过385个字节就读写不了的原因?

STM32F103的芯片中,利用软件模拟I2C读写EEPROM,在使用页写入的方式进行读写时,能够读写385个字节,(EEPROM芯片每页为128个字节)。超出去的就读写不了,这会是什么原因造成的?

回帖(1)

贾飞世

2024-3-19 17:59:42
这种情况可能是由于软件模拟的I2C速度较慢,导致在写入较多数据时耗时过长,从而超过了EEPROM的等待时间限制。

软件模拟I2C相对于硬件I2C来说,通信速度较慢,因为每个字节的传输都需要多次的程序循环来模拟I2C的时序。当读写的数据量较大时,软件模拟I2C的传输时间就会增加,可能超过了EEPROM设备写入一页数据的最大等待时间。

要解决这个问题,可以尝试以下方法:
1. 优化软件模拟I2C的实现,减少循环次数,提高传输速度。
2. 使用硬件I2C进行通信,硬件I2C具有较高的传输速率。
3. 分割数据,分多次写入EEPROM,每次写入一个页的数据量。

另外,还需要确保软件模拟I2C的时序设置正确,如SCL和SDA线的上拉电阻、时钟频率的设置等。
举报

更多回帖

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