IIC:两线式串行总线,它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。
1. 起始信号 IIC_START
SDA、SCL线默认是高,表示总线处于空闲状态;
SCL处于高电平时,SCL从高到低。表示信号传输开始;
SDA拉低后,SCL也被拉低。
对应代码
产生IIC起始信号
1.设置SDA输出
2.先拉高SDA,再拉高SCL,空闲状态
3.拉低SDA
4.准备接收数据
2. 终止信号 IIC_STOP
终止信号:当SCL为高期间,SDA由低到高的跳变;
停止信号也是一种电平跳变时序信号,而不是一个电平信号。
产生IIC停止信号
1.设置SDA输出
2.先拉低SDA
3.拉高SCL
4.拉高SDA
5.停止接收数据
注意:
1、在发送、接收数据的时候,当SCL为高电平时,SDA线不允许变化;当SCL线为低电平时,SDA线可以任意0、1变化。
2、只有当SCL为高电平时,IIC电路才对SDA线上的电平(0或者1)进行记录,当SCL线为低电平时,无论SDA是高还是低,IIC电路都不对SDA进行采样。
3、应答信号
每当主机向从机发送完一个字节(8位)的数据,主机总是需要等待从机给出一个应答信号,以确认从机是否成功接收到了数据,从机应答主机所需要的时钟仍是主机提供的,应答出现在每一次主机完成8个数据位传输后紧跟着的时钟周期,低电平0表示应答,1表示非应答:
4、发送数据
5、接收数据(读一个字节)