# stm32 IIC **Repository Path**: guugen/stm32-iic ## Basic Information - **Project Name**: stm32 IIC - **Description**: 使用stm32实现IIC通信 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-03 - **Last Updated**: 2022-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Hareware文件夹下是IIC的底层驱动 ## User文件夹下是主逻辑 ## 简介 IIC是半双工通信(数据可以在两个方向上传输,但同一时间只能向一个方向传输),由SCL和SDA两根线组成,支持多设备,设备之间由地址区分。 SCL是时钟线由主机产生,SDA是数据和信号线。
协议:起始信号->7位设备地址+1位数据方向(读/写)->应答->数据->应答->结束信号 ## 信号传输 IIC有起始信号,应答信号,结束信号
起始信号: 时钟线SCL处于高电平状态,SDA产生一个下降沿为起始信号。
结束信号: 时钟线SCL处于高电平状态,SDA产生一个下降沿为起始信号。
应答信号: 发送器每发8bit数据,就由接收器发一个应答信号.应答信号为高电平为有效信号(ACK),为低电平为无效信号(NACK),数据接收失败. ## 数据传输要求 时钟线SCL为低电平时,数据可变.SCL为高电平时,要求数据稳定.SCL为下降沿时数据读入或输出