IIC总线是一种由飞利浦公司开发的两线式串行总线,用于连接微控制器和外围设备。
它是由数据线SDA和时钟SCL构成的串行总线,可发送与接受数据,高速IIC总线可达400kbps以上。
IIC总线在传送数据过程中共有六种类型信号:开始信号,结束信号,发送一个字节,读取一个字节,发送应答信号,接受应答信号
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据
void IIC_Start(void)
{
SDA_OUT(); //配置相应的引脚输出
IIC_SDA = 1;
IIC_SCL = 1;
delay_us(4);
IIC_SDA = 0;
delay_us(4);
IIC_SCL = 0; //准备发送或接受数据
}
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据
void IIC_Stop(void)
{
SDA_OUT(); //配置相应的引脚输出
IIC_SDA = 0;
IIC_SCL = 0;
delay_us(4);
IIC_SCL = 1;
IIC_SDA = 1; //发送IIC结束信号
delay_us(4);
}
发送一个字节:SCL在低电平时&#