I2C两根线,时钟线(SCL),数据线(SDA),双向传输,半双工,主从关系,串行通信,适合器件之间短距离传输、非经常性传输数据,每次传输数据会带上目的设备的设备地址,因此可以实现组网。
写时序如下:
- Masket发送起始信号(SDA从高电平到低电平)
- Masket发送七位Slave address和一位读写位(写信号),等待ACK
- Slave发送ACK
- Masket发送八位reg address,等待ACK
- Slave发送ACK
- Masket发送八位reg data,等待ACK
- Slave发送ACK
- Masket发送结束信号(SDA从低电平到高电平)
读时序如下:(I2C读要先写)
- Masket发送起始信号
- Masket发送七位Slave address和一位读写位(写信号),等待ACK
- Slave发送ACK
- Masket发送八位reg address,等待ACK
- Slave发送ACK
- Masket发送结束信号
- I2C初始化状态(不用操作)
- Masket发送起始信号
- Masket发送七位Slave address和一位读写位(读信号),等待ACK
- Slave发送ACK
- Masket发送八位reg address,等待ACK
- Slave发送ACK
- Slave发送八位reg data,等待ACK
- Masket发送ACK,Masket若不发送ACK表示结束信号