目录
I2C协议
1. 空闲状态
2. 开始信号
3. 停止信号
4. 应答信号ACK
5. 数据的有效性
6. 数据传输
I2C的实现
IIC_Init
II2_START
IIC_Stop
IIC_Wait_Ack
IIC_Ack
IIC_NAck
IIC_Send_Byte
IIC_Read_Byte
通过I2C操作24C02
初始化
写一个字节
读一个字节
写入读出多个地址
I2C,两线式串行总线,可发送和接收数据
SCL和SDA都必须上拉
I2C协议
1. 空闲状态
SCL和SDA同时处于高电平
2. 开始信号
SCL为高电平期间,SDA由高电平转为低电平
3. 停止信号
SCL为高电平期间,SDA由低电平转为高电平
4. 应答信号ACK
发送器每发送8个字节,就在时钟脉冲9期间释放数据线SDA,由接收器反馈一个应答信号
拖接收器成功接收该信号,则拉低SDA,表示ACK
若没有成功接收该信号,则不拉低,SDA仍为高,表示NACK
5. 数据的有效性
SDA高电平表示1,低电平表示0,时钟线SCL高电平期间SDA应保持稳定
6. 数据传输
在SCL控制下传送数据
I2C的实现
定义SCL与SDA的引脚
SDA需要能够转变IO的方向
IIC_Init
II2_START
IIC_Stop
IIC_Wait_Ack
IIC_Ack
IIC_Wait_Ack
IIC_Ack
IIC_NAck
IIC_Send_Byte
IIC_Read_Byte
如果读到1,则最低位+1
通过I2C操作24C02
初始化
写一个字节
地址是2个字节u16,高8位是一个字节,即高字节,低8位是一个字节,即低字节
写入的是一个字节,8位,u8
读一个字节
写入读出多个地址



