简介
IIC协议,全称Inter-Integrated Circuit(集成电路之间),是一种同步串行通信接口,由飞利浦公司在1980年代开发,主要用于连接低速周边设备,如传感器、存储器、时钟芯片等。
一、基础知识
1.协议时序
起始信号(S):当SCL为高电平时,SDA从高电平变为低电平。
停止信号(P):当SCL为高电平时,SDA从低电平变为高电平。
应答信号:上拉电阻影响下SDA默认为高,而从机拉低SDA就是确认收到数据即ACK(应答),否则为NACK(非应答)。
2.通信过程
开始通信:主设备发送起始信号,所有从设备进入准备状态。
发送设备地址:主设备发送从设备地址(7位或10位)和读写位(1位),读写位为0表示写操作,为1表示读操作。
从设备应答:从设备根据地址位和读写位进行匹配,如果匹配成功则发送应答信号(ACK)。
数据传输:在SCL为高电平时,SDA上的数据必须保持稳定;在SCL为低电平时,SDA上的数据可以变化。数据以字节为单位进行传输,每传输完一个字节后,从设备会发送应答信号(ACK或NACK)。
结束通信:主设备发送停止信号,结束通信。
二、软件IIC运用
IIC.c
#inclu