注意:起始条件与终止条件都必须有主机完成,这里不考虑多主机模式
注意:
从机需要在上升沿期间需要立刻读取SDA上的电平信号,在SCL高电平期间SDA数据上的内容不能变化。由于主机对时钟有主导权,所以主机放数据时不用非常着急,只需在低电平任意时刻放置数据即可。
当中断发生时,由于是同步时序,SCL SDA的电平信号会维持原来不变,直到中断处理完成,继续维持原来的数据发送!
注意:在接收数据期间,主机需要释放SDA总线,将总线控制权交换从机,主机在高电平读取,从机在低电平中写入数据
在SCL高电平期间,SDA总线被主机拉低,此时代表起始。紧接着主机需要立即发送一个7位设备地址位置,加1位的读写控制位,0表示数据写入1表示数据读出。RA代表数据的应答,0代表有人应答,1代表没人应答。在写模式下,会要求输入一个要写入的数据地址位置。每写入一个字节,就必须释放SDA总线获取设备的应答情况。当需要停止时就必须在SCL高电平期间,拉高SDA总线代表数据传输结束。
在SCL高电平期间,SDA总线被主机拉低,此时代表起始。紧接着主机需要立即发送一个7位设备地址位置,加1位的读写控制位,0表示数据写入1表示数据读出。RA代表数据的应答,0代表有人应答,1代表没人应答。在读模式下,主机要释放SDA总线接收数据,由于不能指定数据读取位置,一般数据会从起始位置读出。当要停止读取的时候,主机必须要给从机一个非应答位SA ,这样主机才能控制SDA总线,在SCL上升沿期间拉高SDA从而结束数据传输。
在SCL高电平期间,SDA总线被主机拉低,此时代表起始。紧接着主机需要立即发送一个7位设备地址位置,加1位的读写控制位,0表示数据写入1表示数据读出。RA代表数据的应答,0代表有人应答,1代表没人应答。在指定地址读模式下,其实就是指定地址写+当前地址读的模式。在指定地址写模式下,会要求输入一个要写入的数据地址位置。每写入一个字节,就必须释放SDA总线获取设备的应答情况。获取完后SR代表重复发送一个起始信号,写入7位设备地址位置,加1位的读写控制位。此时切换为当前地址读模式,由于地址寄存器已经在写模式下被修改,所以读出的数据就是指定地址写位置下的数据。此时正常读取一个字节的数据就是指定位置的数据。同样的需要停止接收,需要主机给一个非应答,在SCL上升沿期间拉高SDA代表结束信号