12、IIC
1 IIC基本情况
1.1 IIC简介
Inter Intergrated Circuit(IIC),即集成电路总线,是一种同步串行半双工通信总线。
1.2 IIC结构
1、IIC由时钟线SCL和数据线SDA组成,并且都接上拉电阻,确保总线在空闲状态保存为高电平
2、总线支持多设备连接,允许多主机存在,每个设备有唯一地址
3、连接总线上的数目受总线最大电容400pf限制
1.3 IIC协议时序
起始信号:SCL为高电平时,SDA由高变低
停止信号:SCL为高电平时,SDA由低变高
应答信号:从机拉低SDA为确认受到数据,即ACK,否则为NACK
1.4 硬件设置
SCL配置为推挽输出,SDA配置为开漏输出并加弱上拉电阻
1.5 数据格式
1、数据先传输高位
2、数据以字节形式传输,每传输一个字节(8位)必须在第9位回应一个应答信号已确认数据传输接收情况
3、数据在SCL高电平时保持稳定,在SCL低电平时才可变化
2 IIC配置(软件模拟)
2.1 IIC的软件模拟
由于早期F1版本的总线死锁问题,IIC的实现通常通过软件模拟实现。软件模拟对于CPU的占用更高,速度慢,但是引脚配置灵活,运行更加稳定。
2.2 IIC软件模拟配置步骤
1、底层硬件配置:初始化并配置SCL、SDA,对应到两个GPIO引脚上
2、创建IIC延时函数
3、配置模拟IIC的起始信号和停止信号
4、创建字节发送函数、字节读取函数
5、创建等待应答函数
6、组合上述函数,实现IIC通信功能

浙公网安备 33010602011771号