I2C读写流程

I2C数据通信是由数据线(SDA)和一根时钟线(SCL)组成 先对I2C初始化:主模式、中断向量IRQ中断、总线速率 数据读写流程:
1、 主设备发出开始信号(Start)
开始信号(Start):时钟线(SCL)为高电平期间,数据线(SDA)由高变低,即为一个开始信号。
2、主设备发出1字节的从设备地址信息
最低位为读写控制码(0为写,1为读),高7位为从机器地址码。
如AT24C256地址:
在这里插入图片描述
3、 从设备发出认可信号
应答信号(Ack):即认可信号,分为两种情况:
(a)、主设备在写从设备时,每正确写完1字节数据,从设备将在下一个时钟周期把数据线(SDA)拉低,即为一个应答信号。
(b)、主设备在读从设备时,每正确读完1字节数据,主设备将在下一个时钟周期把数据线(SDA)拉低,即为一个应答信号。注:在读从设备时,主设备在最后一个字节数据接收完毕以后不发出应答信号,而是直接发出结束信号。
4、 主设备开始对从设备进行读写操作
如果是读操作,则每读取1字节,主设备会发送一个应答信号(Ack)给从设备,如果是写操作,则每写入1字节,从设备会发送一个应答信号(Ack)给主设备
5、 主设备发出结束信号(Stop)    
时钟线(SCL)为高电平期间,数据线(SDA)由低变高,即为一个结束信号。也就是说,I2C总线在通信过程中,所有的数据读写操作都必须在时钟线(SCL)为低电平进行,而在钟线(SCL)为高电平时必须保持数据线(SDA)信号的稳定,任何发生在钟线(SCL)为高电平期间数据线(SDA)上的电平变化都被视为是开始或结束信号。

你可能感兴趣的:(RK系列驱动开发调试,单片机,物联网,stm32)