文章目录[隐藏]
目录
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_NAck
IIC_Send_Byte
IIC_Read_Byte
如果读到1,则最低位+1
通过I2C操作24C02
初始化
写一个字节
地址是2个字节u16,高8位是一个字节,即高字节,低8位是一个字节,即低字节
写入的是一个字节,8位,u8
读一个字节
写入读出多个地址
版权声明:本文为CSDN博主「CodeForCoffee」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_24118527/article/details/122759559
暂无评论