一、概述
二、写I2C步奏
SETP 1:发送一个启动信号。调用IIC_Start()函数。
超动停止定义
总线在空闲时都是高电平(由上拉电阻上拉)
在时钟为高电平时:数据线由1变0表示启动,数据线由0变1表示停止,除开启动停止,其余状态下在时钟为高电平时必须为稳定状态,要改变数据也要在时钟为0时改变,否则总线会解释成启动或停止。
启动总线代码
SETP 2:发送7bit地址信息+0(写),调用IIC_WriteByte(WD)函数,WD由器件地址+0组成。
常用IIC接口通用器件的器件地址是由种类型号,及寻址码组成的,共7位。如格式如下:
写字节代码,WD放地址+0
SETP 3:检测ACK信号,此ACK由SLAVE产生。调用IIC_WaiteAck()函数。
检测SALVE器件ACK代码
SETP 4:发送8bit地址码。调用IIC_WriteByte(WD)函数。WD放准备写寄存器地址。
SETP 5:检测ACK信号,此ACK由SLAVE产生。调用检测IIC_WaiteAck()函数。
SETP 6:发送8bit数据。调用IIC_WriteByte(WD)函数。WD放准备写的数据。
SETP 7:检测ACK信号,此ACK由SLAVE产生。收到可以进入第6步重复写多个寄存器,也可以发送STOP结束本次通信。
SETP 8:发送STOP停止信号,终止通信过程。调用IIC_Stop()函数。
超动停止定义
三、读I2C步奏
读字节代码
SETP 10:产生一个应答信号,这个信号由MASTER产生,表示数据已收到。调用IIC_Ack()信号。
CPU产生应答代码
SETP 11:第9步和第10步可以多次循环,表示读多个寄存器。
SETP 12:发送STOP信号,此次通信结束。调用IIC_Stop()信号。