起始信号
在SCL为高的时候把SDA从高拉低
结束信号
反过来
等待ACK
发送完一个Byte的时候要等待从机发送的ACK,此时主机把SDA置为输入状态(高阻态),等待SDA被从机拉高
发送ACK/NACK
主机每读取完一个字节都要发送,如果读取的不是最后一个字节就发送ACK,如果是最后一个字节就发送NACK;ACK就是拉低SDA,NACK就是拉高SDA;
发送时序
拉低->写bit->拉高,最后拉低
读取时序
拉高->读bit->拉低,最后拉高
注:关于ACK
无论是等待ACK还是发送ACK,本质上都是发送方需要知道接收方是否收到了我发送的数据,所以主机发送完需要等待从机给ACK,从机发送完需要等主机给ACK