I2C
I2C(Inter-Integrated Circuit)协议是由Philips公司于1980年代提出的一种 同步、半双工、多主从结构 的串行通信协议,广泛应用于嵌入式系统中的芯片间通信。其核心特点在于仅使用 两条信号线 : SDA(数据线) 与 SCL(时钟线) ,即可实现多个设备之间的可靠数据传输。
传输数据
总线时序
i2c 通信以起始信号(START)开始,以终止信号(STOP)结束,起始信号和终止信号均为主机发出
起始信号:
- 当 SCL 为高电平时,SDA 从高电平变为低电平时为起始信号
终止信号:
- 当 SCL 为高电平时,SDA 从低电平变成高电平时为终止信号

写操作
- 主设备要发出一个start信号
- 然后发出一个设备地址(用来确定往哪个从设备写数据),方向(读/写, 0表示写,1表示读)
- 从设备回应(用来确定这个设备是否存在),然后就可以传输数据
- 主设备发送一个字节数据给从设备,并等待回应
- 每传输一个字节数据,接收方要有一个回应信号(确定数据是否接收完成),然后再传输下一个数据
- 数据发送完之后,主设备发送一个停止信号 下图:白色背景表示:主→从,灰色背景表示:从→主