一、I2C相关介绍
- I2C由 荷兰Philips(飞利浦) 公司推出
- I2C Bus——Inter-Integrated Circuit 即集成电路总线
- 速率:普通模式 - 100Kbps;高速模式 - 400Kbps
- I2C总线端口为漏开结构,因此一般需要加上拉电阻Rp,通常选用5K~10KΩ
- I2C总线以字节为单位收发数据,一个字节为一帧,数据传输的次序为从最高位到最低位
- I2C应答位遵循“谁接收谁产生”的原则
- 若还需要继续接收就需要产生应答位
- I2C器件地址的分配由I2C总线委员会协调确定
I2C器件的从机地址由4位器件地址,2~3位引脚地址和1位方向位(读写位)【0写1读】
- 以AT24cxx芯片为例:
I2C由 数据线(SDA)与时钟线(SCL)组成
- SDA:Synchronous Data Adapter (同步数据衔接器)
- SCL:Serial Communication Loop(串行通讯环路)
二、I2C时序图
三、GPIO简单模拟I2C程序
//产生IIC起始信号
void IIC_Start(void)
{
SCL = 1;
SDA = 1; //首先SDA、SCL为高电平
delay_us(5); //起始条件建立时间大于 4.7us
SDA = 0; //START:when SCL is high,SDA change form high to low
delay_us(