【嵌入式】通信协议之——I2C

I2C(Inter-Integrated Circuit):集成电路总线

通信特点

  • 串行、同步、半双工
  • 近距离,低速
  • 两根线:
    • SCL:时钟线;
    • SDA:数据线;
  • 主机和从机,一对多或多对多,但同一时间,只有一个主机;

通信连接图

I2C

通信流程

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;
}

参考

UM10204 I2C-bus specification and user manual Rev7.0 - 2021

posted @ 2026-01-05 13:43  独眼机械师  阅读(4)  评论(0)    收藏  举报