一、基础
1.数据发送规则
高位先行
2.两根信号线
①SCL:时钟信号线
②SDA:数据信号线
二、信号

1.起始信号:SCL为高电平时,SDA由高电平变为低电平(下降沿)
2.数据传输规则
①SCL高电平期间:SDA电平必须保持稳定,接收方采样读取数据。
②SCL低电平期间:SDA电平允许改变,发送方更新发送数据。
3.应答信号 ACK / NACK:第9个时钟周期,接收方向发送方回复应答。
①ACK:低电平(应答成功)
②NACK:高电平(无应答)
4.结束信号:SCL为高电平时,SDA由低电平变为高电平(上升沿)。
三、设备地址字节
1.起始信号后传输第一个字节:7位设备地址(高位) + 1位读写方向位(最低位)
①方向位 = 0:写,主机 → 从机
②方向位 = 1:读,从机 → 主机
2.最多支持127个从设备。
四、I2C写时序(主机写从机)
1.主机发送起始信号 + 设备地址 + 写位,等待从机ACK应答。
2.主机发送寄存器地址,等待从机ACK应答。
3.主机向从机发送数据,等待从机ACK应答。
4.主机发送停止信号。
五、I2C读时序(主机读从机)
1.主机发送起始信号 + 设备地址 + 写位,等待从机ACK应答。
2.主机发送寄存器地址,等待从机ACK应答。
3.主机发送重发起始信号 + 设备地址 + 读位,等待从机ACK应答。
4.主机接收从机发来的数据,主机回复ACK应答。
5.主机接收完最后一个字节,回复NACK应答。
6.主机发送停止信号。
六、进制
1.0x00:全部位为0
2.0xFF:全部位为1
3.0xAC → 二进制:1010 1100
4.0x10 → 二进制:0001 0000