IIC学习笔记

2012-11-1:
1、IIC有两根线(时钟线:SCL;数据线:SDA);
2、IIC器件都有自己的地址(生产IIC硬件商自己决定的);
3、IIC主机通过地址选择要与自己通信的从机;
4、IIC起始信号:SCL = 1, SDA产生一个下降沿;
5、IIC结束信号:SCL = 1,SDA产生一个上升沿;
6、在数据传输阶段:SCL = 1的时候SDA数据线不能变化,如果SDA发生变化那意味着结束;
7、SCL = 1; SDA = 1; 为空闲状态;
8、IIC器件的SCL SDA引脚需接上拉电阻(记忆中是10K);
9、总线上各器件的SCL、SDA为线与关系,某一个器件的引脚输出低,则为低。
10、通信过程中要注意应答信号,在第9个时钟时,SDA=0(ack),SDA=1(nak)。


IIC通信过程:
写数据:发送启动信号,发送设备地址信号,检测应答,发送写命令,发送数据,发送停止信号。
读数据:发送启动信号,发送设备地址信号,检测应答,发送写命令,发送要读取数据的地址;发送开始信号,发送读命令。

菜鸟常见错误:用IIC控制硬件时,要特别注意硬件改变状态需要时间(硬件把收到的数据写入自己的寄存器需要时间、根据自己的寄存器改变状态也需要时间)。

原文地址:https://www.cnblogs.com/smart-mutouren/p/3413619.html