单片机学习小组
直播中

何夏庄

8年用户 1057经验值
私信 关注

IIC是什么?IIC数据传输有哪几种方式呢

IIC是什么?IIC数据传输有哪几种方式呢?
AT24C02芯片的数据传输过程是怎样的?

回帖(1)

李璐

2022-3-1 13:59:49
IIC作为一种通信协议,由SCL和SDA构成,下面直接放干货:

1.所有的启动、终止、数据传输、应答、非应答,这些操作想要有效,前提是SCL是高电2频。简单的说,就是SCL高电平时才能传信号;

2.IIC数据传输有三种方式(个人总结):(1) 主机对从机发一字节的数据;(2)主机对从机读取一字节数据;(3)主机对从机读 / 写多字节数据;

   以AT24C02芯片(从机)为例:  

步骤如下:(1)启动---> 写从机地址(写 【0】)--> 从机应答(一段时间没有收到到则默认接收) --> 写从机的存储地址 --> 从机应答 --> 主机向从机写一字节数据 --> 从机应答 --> 终止;

                  (2)启动---> 写从机地址(写 【1】)--> 从机应答(一段时间没有收到到则默认接收) --> 写从机的存储地址 --> 从机应答 --> 主机从从机读一字节数据 --> 主机非应答 --> 终止;

第三个程序我借鉴了博客一位博主的:

uchar AT_Read(uchar add)
{
    uchar dat;
    IIC_Start;
    IIC_Write(0xa0);
    IIC_WaitAck();
    IIC_Write(add);
    IIC_WaitAck();
    dat = IIC_Read();
    IIC_SendAck(1);
    return dat;
}

void AT_ReadStr(uchar *dat, uchar add, uchar num)
{
    while(num)
    {
        dat = AT_Read(add);
        dat++;
        add++;
        num--;
    }
}
         
举报

更多回帖

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