] 本帖最后由 yehuo_tomorrow 于 2025-11-18 22:44 编辑 [/i]
[md]] 本帖最后由 yehuo_tomorrow 于 2025-11-18 22:39 编辑 [/i]
[md]确实有问题,教程源码没考虑完全, 比如:"写入地址6,个数5的话",就会进入"roll over"状态,从当前页的起始开始覆盖;

测试程序如下:
void my_test(void)
{
//测试"写入地址6,个数5的话",是否有问题?
uint16_t i;
printf("写入的数据\n\r");
for ( i=0; i<=4; i++ ) //
{
I2c_Buf_Write[i] = i;
printf("0x%02X ", I2c_Buf_Write[i]);
}
printf("\n\r");
//
I2C_EE_BufferWrite( I2c_Buf_Write, 6, 5);
//读出,读地址0~7,8~15,
I2C_EE_BufferRead(I2c_Buf_Read, 0, 16);
//打印
for (i=0; i<=16; i++)
{
printf("0x%02X ", I2c_Buf_Read[i]);
}
printf("\n\r");
}
现象如下图,
第1行: 待写入的5个数据,将从地址6开始写入;
第2行:从地址0开始读出的16个数据;

修改:
参考这个博客:https://blog.csdn.net/phmatthaus/article/details/120550260; |