空闲状态下两个总线都是高电平,主机需要给从机写入数据的时候,在SCL高电平期间,拉低SDA,产生起始条件,在起始条件之后紧跟的时序,必须是发送一个字节的时序,字节的内容必须是从机地址+读写位,(从机地址是7位,读写位是1位加起来就是1个字节8位)(发送从机地址:确定通信的对象),(发送读写位:确认接下来是要写入还是读出,0:写入,1:读出),紧跟着的单元是接收从机的应答位(Receive Ack,RA),这个时刻主机需要释放SDA,如果从机应答,从机会立即拉低SDA,应答位产生后,从机释放SDA,从机交出SDA的控制权,同样的时序再来一遍,第二个字节数据就会送入指定数据的内部,一般第二个字节是寄存器地址或者是指令控制字,第三个字节是想要往寄存器地址中写入的值,如果主机不想发送数据了,要产生停止条件,在产生停止条件之前,先拉低SDA,会后续的上升沿做准备,然后释放SCL,再释放SDA,产生SCL高电平期间SDA的上升沿 |