注意写数据的时候,加延时,单个字节读取
#if 1
printf("rn***************I2C Example*******************************rn");
printf("WriteBufferrn");
for(i=0; i<256; i++)
{
WriteBuffer
=i; /* WriteBuffer init */
printf("0x%02X ",WriteBuffer);
}
/* wrinte date to EEPROM */
for(i=0;i
{
HAL_I2C_Mem_Write(&hi2c2, ADDR_24LCxx_Write, i, I2C_MEMADD_SIZE_8BIT,&WriteBuffer,1,0xff);//使用I2C块读,出错。因此采用此种方式,逐个单字节写入
HAL_Delay(5);//此处延时必加,与AT24C02写时序有关
}
printf("rn EEPROM 24C02 Write Test OK rn");
HAL_I2C_Mem_Read(&hi2c2, ADDR_24LCxx_Read, 0, I2C_MEMADD_SIZE_8BIT,ReadBuffer,BufferSize,0xff);
for(i=0; i<256; i++)
printf("0x%02X ",ReadBuffer);
if(memcmp(WriteBuffer,ReadBuffer,BufferSize) == 0 ) /* check date */
printf("rn EEPROM 24C02 Read Test OKrn");
else
printf("rn EEPROM 24C02 Read Test Falsern");
#endif
注意写数据的时候,加延时,单个字节读取
#if 1
printf("rn***************I2C Example*******************************rn");
printf("WriteBufferrn");
for(i=0; i<256; i++)
{
WriteBuffer=i; /* WriteBuffer init */
printf("0x%02X ",WriteBuffer);
}
/* wrinte date to EEPROM */
for(i=0;i
{
HAL_I2C_Mem_Write(&hi2c2, ADDR_24LCxx_Write, i, I2C_MEMADD_SIZE_8BIT,&WriteBuffer,1,0xff);//使用I2C块读,出错。因此采用此种方式,逐个单字节写入
HAL_Delay(5);//此处延时必加,与AT24C02写时序有关
}
printf("rn EEPROM 24C02 Write Test OK rn");
HAL_I2C_Mem_Read(&hi2c2, ADDR_24LCxx_Read, 0, I2C_MEMADD_SIZE_8BIT,ReadBuffer,BufferSize,0xff);
for(i=0; i<256; i++)
printf("0x%02X ",ReadBuffer);
if(memcmp(WriteBuffer,ReadBuffer,BufferSize) == 0 ) /* check date */
printf("rn EEPROM 24C02 Read Test OKrn");
else
printf("rn EEPROM 24C02 Read Test Falsern");
#endif
举报