【【51单片机的I2C总线】】

51单片机的I2C总线

学会总线,掌控芯片。了解串口,真理全有。

I2C时序
1.起始条件: 
SCL在高电平期间,SDA从高电平切换到低电平
终止条件:
SCL在高电平期间,SDA从低电平切换为高电平
【【51单片机的I2C总线】】_第1张图片
开始状态
【【51单片机的I2C总线】】_第2张图片
截止状态

2.发送一个字节 : SCL在低电平期间 主机将数据依次放到SDA线上(高位在前) ,然后拉高SCL,从机将在SCL高电平期间,读取数据,所以在SCL高电平期间,不允许SDA有任何数据变化,依次循环上述过程8次
【【51单片机的I2C总线】】_第3张图片
3.接受一个数据 :
其实来说和上面发送数据差不太多
在SCL低电平期间,从机将数据依次放到SDA线上(高位在前) , 然后拉高SCL,主机将在SCL高电平期间读取数据,这就也要求了SDA不能变化 一次循环8次,就能接收1个字节(主机在接收之前,需要先释放SDA) 
其实读发都差不多的
4.发送应答和接收应答:
这两个是用在发送和接收时使用的,例如
发送应答是在接收完一个字节后,主机在下一个时钟发送一位数据,数据0表示应答,数据1表示非应答

而同理 在发送完一个字节后,主机在下一个时钟接收一位数据,判断从机是否应答,数据0表示应答,数据1 表示非应答 
(主机在接收之前,需要释放SDA) 
I2C的数据帧
【【51单片机的I2C总线】】_第4张图片

你可能感兴趣的:(51单片机学习,51单片机,嵌入式硬件,单片机)