【嵌入式】通信协议之——I2C
I2C(Inter-Integrated Circuit):集成电路总线
通信特点
- 串行、同步、半双工
- 近距离,低速
- 两根线:
- SCL:时钟线;
- SDA:数据线;
- 主机和从机,一对多或多对多,但同一时间,只有一个主机;
通信连接图

通信流程
1、主机发送起始信号启用总线;
2、主机发送一个字节数据指明从机地址和后续字节的传送方向;
3、被寻址的从机发送应答信号回应主机;
4、发送器发送一个字节数据;
5、接收器发送应答信号回应发送器;
6、......(循环步骤4、5);
7、通信完成后主机发送停止信号释放总线;
时序图
1、起始条件:SCL高电平时,SDA由高变低(下降沿);
2、终止条件:SCL高电平时,SDA由低变高(上升沿);
3、发送一个字节
4、接收一个字节
5、发送应答:0表示应答,1表示非应答;
6、接收应答:0表示应答,1表示非应答;
代码实现
I2C.c
void I2C_Start(void)
{
}
void I2C_Stop(void)
{
}
void I2C_SendByte(unsigned char Byte)
{
}
unsigned char I2C_ReceiveByte(void)
{
unsigned char Byte;
return Byte;
}
void I2C_SendAck(unsigned char AckBit)
{
}
unsigned char I2C_ReceiveAck(void)
{
unsigned AckBit;
return AckBit;
}
void I2C_WriteByte(unsigned char WordAddress,Data)
{
}
unsigned char I2C_ReadByte(void)
{
unsigned char Data;
return Data;
}
参考
本文来自博客园,作者:独眼机械师,转载请注明原文链接:https://www.cnblogs.com/duyanjixieshi/p/19442101

浙公网安备 33010602011771号