百利通器件 I2C时序请教

[复制链接]
 楼主| luojm 发表于 2016-5-4 14:08 | 显示全部楼层 |阅读模式
图片是百利通PI3HDX412BD的I2C通信时序,该器件一共有8个寄存器,通过I2C读写。以下是我的代码
unsigned char PI3HDX412BD_I2C_Read(unsigned char DevID)
{       
        unsigned char Rdata=0;
        AT24CXX_Start();
        AT24CXX_WriteByte(DevID+1);
        AT24CXX_TestAck();
        TmpPI3Buf[0]=AT24CXX_ReadByte();
        AT24CXX_TestAck();
        TmpPI3Buf[1]=AT24CXX_ReadByte();
        AT24CXX_TestAck();
        TmpPI3Buf[2]=AT24CXX_ReadByte();
        AT24CXX_TestAck();
        TmpPI3Buf[3]=AT24CXX_ReadByte();
        AT24CXX_TestAck();
        TmpPI3Buf[4]=AT24CXX_ReadByte();
        AT24CXX_TestAck();
        TmpPI3Buf[5]=AT24CXX_ReadByte();
        AT24CXX_TestAck();
        TmpPI3Buf[6]=AT24CXX_ReadByte();
        AT24CXX_TestAck();
        TmpPI3Buf[7]=AT24CXX_ReadByte();
        AT24CXX_NAck();
        AT24CXX_Stop();
        return Rdata;
}

出现的问题是,我只能读写第一个寄存器,剩下的7个寄存器怎么修改都无法对其操作。

想请教下这种I2C时序应该怎么操作?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部