int CEeprom::WriteData( PUCHAR bData, int iSize)
{
memset(&IIC_AddressData, 0, sizeof(I2C_IO_DESC));
IIC_AddressData.SlaveAddr = 0xa0; //WRITE
IIC_AddressData.WordAddr = m_StartAddr; //start addr
IIC_AddressData.Data = bData;
IIC_AddressData.Count = iSize;
for(int i = 0; i < (int)iSize; i++)
{
printf("%c\n",IIC_AddressData.Data);
}
int Ret = DeviceIoControl(hI2C,IOCTL_I2C_WRITE, &IIC_AddressData, sizeof(I2C_IO_DESC), OutputBuf,iSize,&ReadBytes, NULL);
if(Ret == true)
printf("写AT24LC08成功!\n");
else
printf("写AT24LC08失败!\n");
return Result;
}
int CEeprom::ReadData(PUCHAR bData, int iSize)
{
memset(&IIC_AddressData, 0, sizeof(I2C_IO_DESC));
IIC_AddressData.SlaveAddr = 0xa1; //READ
IIC_AddressData.WordAddr = m_StartAddr; //start addr
IIC_AddressData.Data = bData;
IIC_AddressData.Count = iSize;
DeviceIoControl(hI2C,IOCTL_I2C_READ, &IIC_AddressData, sizeof(I2C_IO_DESC), OutputBuf, iSize,&ReadBytes, NULL);
if (!ReadBytes)
{
printf("IIC read single data failed !");
}
else
{
for(int i = 0; i < (int)ReadBytes; i++)
{
printf("%c\n",bData);
}
}
return Result;
}
可以读但是写进去的怎么是乱码呀?用开发板提供的I2C-EEPROM来写进去然后用自己写的上面的一段代码来读是对的,但是按照写进去就是乱码!是怎么回事呢?