我正在使用512KB的AT24C512 EEPROM和我的STM32
我能够使用
一次写入128字节的数据userScore
但是问题是我想在刚刚写入的数据之后再写入更多数据,但是EEPROM将替换数据,因为地址相同
那我该如何跳过书面地址?
答案 0 :(得分:0)
此答案不是关于将HAL与I2C一起使用,但希望它能为您指出
只需检查数据表(我查看STM32F0),您就会看到限制为255个字节(寄存器CR2:NBYTES),我不确定HAL中是否还有其他限制,但是使用直接访问寄存器可以一次发送255个字节或对其进行分段,然后发送所需的数量。
对于分段,有CR2:RELOAD位,如果设置了该位,则最后不会停止传输,并且可以在设置最后一个字节块(可以放入NBYTES)时更新下一个NBYTES,.. ),然后清除CR2:RELOAD位。
这有一个缺点,每255个字节将中断您的访问。
答案 1 :(得分:0)
我认为您应该查看AT24C512
数据表第7页。
如果更多 超过128个数据字被传输到EEPROM, 数据字地址将 “ 滚下 ” 和以前的数据将是 被覆盖。地址 “ 滚下 ” 在写过程中来自 当前页面的最后一个字节到同一页面的第一个字节 页面。