主题 : EEPROM 读写问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 14928
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2010-02-25
最后登录: 2011-06-01
楼主  发表于: 2011-05-20 16:07

 EEPROM 读写问题

ReadData可以读,但是WriteData写进去的怎么是乱码呀?用开发板提供的I2C-EEPROM来写进去然后用自己写的上面的一段代码来读是对的,但是WriteData写进去就是乱码!是怎么回事呢?

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;
}