STM32-I2C-写入顺序数据

时间:2018-12-02 11:30:38

标签: stm32

我正在使用512KB的AT24C512 EEPROM和我的STM32

我能够使用

一次写入128字节的数据
userScore

但是问题是我想在刚刚写入的数据之后再写入更多数据,但是EEPROM将替换数据,因为地址相同

那我该如何跳过书面地址?

2 个答案:

答案 0 :(得分:0)

此答案不是关于将HAL与I2C一起使用,但希望它能为您指出

只需检查数据表(我查看STM32F0),您就会看到限制为255个字节(寄存器CR2:NBYTES),我不确定HAL中是否还有其他限制,但是使用直接访问寄存器可以一次发送255个字节或对其进行分段,然后发送所需的数量。

对于分段,有CR2:RELOAD位,如果设置了该位,则最后不会停止传输,并且可以在设置最后一个字节块(可以放入NBYTES)时更新下一个NBYTES,.. ),然后清除CR2:RELOAD位。

这有一个缺点,每255个字节将中断您的访问。

答案 1 :(得分:0)

我认为您应该查看AT24C512数据表第7页。

  

如果更多   超过128个数据字被传输到EEPROM,   数据字地址将   “   滚下   ”    和以前的数据将是   被覆盖。地址   “   滚下   ”    在写过程中来自   当前页面的最后一个字节到同一页面的第一个字节   页面。