简介两根通信线SDA和SCL。同步时序。有应答机制。可以跟多个设备之间进行通信一主多从/多主多从SCL同步时序来中断的时候可以暂停SDA数据线仅此一根半双工一主多从从机只有被主机点名后才能控制IIC总线多主多从任何一个模块都有可能成为主机控制IIC多主多从模式下在某时刻可能会有多个设备同时控制IIC总线这时候IIC会进行总线仲裁硬件电路这个为一主多从的设备空闲时刻下主设备会控制SCL和SDA的控制权只有当从机发数据和响应时从机才会得到SDA的控制权从机不能获取SCL的控制权并且从机绝对不能主动地去获取SDA的控制权只有主机在准备读取从机的数据或从机返回响应信号的时候从机才能得到SDA的控制。因为主机对SCL有绝对的控制权所以主机的SCL输出模式设置为推挽输出从机的SCL输入设置为上拉输入或浮空输入SDA禁止一切设备输出高电平采用上拉电阻开漏输出的模式避免推挽输出模式下一高一低造成短路或者毁坏开漏输出模式内部没有上拉电阻需要外接一个弱上拉电阻。采用开漏上拉电阻避免了输入输出模式的频繁切换输出模式输出低电平就拉低输出高电平就不用拉低操作输入模式观察高低电平直接将对应的0/1输入时序基本单元起始和终止起始条件SCL高电平期间SDA从高电平切换到低电平终止条件SCL高电平期间SDA从低电平切换到高电平发送一个字节SCL为低电平期间主机将数据位依次放在SDA上随后释放SCL。从机在SCL上升沿时读取数据位SCL高电平期间SDA不能有任何数据变化接收一个字节SCL低电平期间从机将数据位依次放在SDA上随后主机释放SCL后主机在SCL上升沿时读取数据发送和接收应答发送应答主机在接收完一个字节之后在下一个时钟发送一位数据数据0表示应答数据1表示非应答主机接收到一个字节后给从机发送一个应答位。告诉从机你是不是要继续发。如果从机发送完一个字节后接收到主机的应答那么从机就继续发接收应答主机在发送完一个字节之后在下一个时钟接收一位数据判断从机是否应答数据0表示应答数据1表示非应答主机在接收之前需要释放SDA主机发送字节问有没有收到主机发送应答 我已收货 从机发送接收应答 买家已收货时序指定地址写对于指定设备Slave Address在指定地址Reg Address下写入指定数据Data指定设备7位最后一位是读写位0写1读主机每次发送完一个字节后都会得到一个接收从机的应答位此时主机会释放SDA使SDA变为高电平从机此时拉低电平就是代表从机的接收应答位为0不拉低就是代表从机的接收应答为1。当前地址读对于指定设备Slave Address在当前地址指针指示的地址下读取从机数据Data设备内部寄存器是一个线性表。每次写入或者读出时内部线性表的指针所指向的区域不会改变起始信号设备号读写信号随后进入接收应答。应答返回0后数据传输方向改变从从机到主机指定地址读对于指定设备Slave Address在指定地址Reg Address下读取从机数据Data前面两个时序是指定设备的指定地址随后接收应答返回0随后后面两个时序另起一个时序进行指定的地址读