STM32
直播中

符筹荣

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

新手求助如何去实现I2C通信单个字节读取数据呢

新手求助如何去实现I2C通信单个字节读取数据呢?

回帖(1)

林立银

2021-12-2 11:25:48
注意写数据的时候,加延时,单个字节读取
#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
举报

更多回帖

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