
文章目录前言一、串口通信缺点二、IIC总线介绍三、IIC总线时序3.1 起始信号【提问】3.2 停止信号【提问结束】3.3 应答信号3.4 读写时序3.5 一次完整的I2C时序四、模块OLED显示屏1. 0.96寸OLED屏幕介绍2. 如何驱动OLED屏幕显示内容3. OLED通讯协议【告诉】4. SSD1306【OLED屏幕】5. GDDRAM 【在哪里】三种地址模式6. OLED命令7. 如何取模总结前言本文主要介绍I2C总线其工作原理和完整的时序对I2C总线的理论知识进行一定的了解。一、串口通信缺点串口通信通常需要至少三条线TX、RX和GND而I2C总线仅需要两条信号线SDA和SCL串口通信仅支持一对一通信而I2C总线支持多机通信允许单个主机与多个从机设备进行通信串口通信通常无应答机制而I2C必须有应答机制【发完信息对方是否收到】串口通讯一般是异步通信而I2C使用同步传输方式数据在时钟信号SCL的控制下传输。二、IIC总线介绍I2C总线全称Inter-Integrated Circuit互连集成电路是一种由Philips现NXP半导体公司在1980年代初开发的同步 串行 半双工【面试会考】通信总线。先喊一下对方的地址每个设备都有一个地址再进行通信。工作原理主从关系主器件用于启动总线传送数据并产生时钟以开放传送的器件此时任何被寻址的器件均被认为是从器件。在总线上主和从、发和收的关系不是恒定的而取决于此时数据传送方向。数据传送1. 如果主机要发送数据给从器件则主机首先寻址从器件然后主动发送数据至从器件最后由主机终止数据传送。2. 如果主机要接收从器件的数据首先由主器件寻址从器件然后主机接收从器件发送的数据最后由主机终止接收过程。时钟同步SCL用于数据的时钟同步确保主从设备之间的数据传输同步进行。主要特点硬件简单I2C总线只需要一根数据线和一根时钟线两根线总线接口已经集成在芯片内部不需要特殊的接口电路。多主机总线I2C总线是一个真正的多主机总线如果两个或多个主机同时初始化数据传输可以通过冲突检测和仲裁防止数据破坏。在线检测I2C总线可以通过外部连线进行在线检测便于系统故障诊断和调试。数据传输与地址设定数据传输和地址设定由软件设定非常灵活。总线上的器件增加和删除不影响其他器件正常工作。负载能力由于线路中电容会影响总线传输速度I2C总线的负载能力为400pF因此可以估算出总线允许长度和所接器件数量。一般不使用stm32硬件I2C因为已经固定死某个IO口只能做SCL或SDA做项目时这两个引脚可能有其他使用场景无法使用硬件I2C所以我们更多使用软件I2C。I2C为什么使用开漏输出因为多设备时第一个设备想要输出高电平接到VDD,第二个设备想输出低电平接到VSS这时出现VDD与VSS相接形成短路。这两个模块可能会被烧毁。为了避免短路使用开漏输出模式只能输出低电平如果想要高电平就挂上一个上拉电阻即可。【重点面试考】一主一从设置推挽输出和开漏输出都可以但开漏输出必须要外挂一个上拉电阻输出高电平一主多从一定要设置开漏输出同时要外挂上拉电阻。应用领域I2C总线广泛应用于各种设备和应用领域例如传感器、存储器如EEPROM、显示屏、温度传感器、实时时钟RTC、扩展IO芯片等。三、IIC总线时序3.1 起始信号【提问】起始信号由主设备发起用于通知总线上的所有设备即将开始数据传输当SCL为高电平时SDA由高电平变为低电平产生一个下降沿表示起始信号的开始。3.2 停止信号【提问结束】停止信号也由主设备发起用于通知总线上的所有设备数据传输已经结束。当SCL为高电平时SDA由低电平变为高电平产生一个上升沿表示停止信号的开始。3.3 应答信号每当一个字节的数据传输完成后接收方会向发送方发送一个应答信号ACK或非应答信号NACK。应答信号在SCL的第9个时钟周期当SCL为高电平时发送。如果SDA线为低电平则表示ACK有效应答表示接收方已成功接收该字节。如果SDA线为高电平则表示NACK非应答通常表示接收方接收该字节没有成功。3.4 读写时序发送一个字节SCL低电平期间主机将数据位依次放到SDA线上高位先行然后释放SCL从机将在SCL高电平期间读取数据位所以SCL高电平期间SDA不允许有数据变化依次循环上述过程8次即可发送一个字节。接收一个字节SCL低电平期间从机将数据位依次放到SDA线上高位先行然后释放SCL主机将在SCL高电平期间读取数据位所以SCL高电平期间SDA不允许有数据变化依次循环上述过程8次即可接收一个字节主机在接收之前需要释放SDA3.5 一次完整的I2C时序四、模块OLED显示屏1. 0.96寸OLED屏幕介绍0.96寸4P OLED屏幕模块是一种显示屏模块它包括一个0.96英寸的OLED显示屏和四个引脚。这种OLED屏幕模块通常用于嵌入式系统和小型电子设备中可以显示文本、图像和其他类型的信息。由于其小尺寸和低功耗也常用于智能手表、健康追踪器和其他便携式设备中。注意OLED 4P支持I2C而7P不仅支持I2C还支持SPI0.96OLED参数驱动芯片SSD1306分辨率128 × 64显示尺寸0.96英寸外形尺寸27.5 × 27.8mm玻璃尺寸26.7 × 19.26 ×1.4 mm显示区域21.74W×10.864mm视角全视角工作电压3.3V ~5V工作温度-20℃ ~ 70℃存储温度-30℃ ~ 80℃使用寿命 16000小时支持接口I2C0.96 OLED 屏幕模块的优点有高对比度和高亮度OLED屏幕模块可以提供深黑色背景和明亮的字色因此可以实现高对比度和高亮度的显示效果。自发光OLED屏幕模块不需要背光灯因此可以实现更薄、更轻的设计响应速度快OLED屏幕模块的响应速度非常快可以实现流畅的动画和视频.效果视角宽OLED屏幕模块的视角非常宽即使从不同角度视察图像和文字也能保持清晰。0.96 OLED屏幕模块的缺点有显示寿命短与LCD显示屏相比OLED的显示寿命相对较短因为它的有机材料会随着时间的推移而逐渐失效显示面积小0.96寸 OLED屏幕模块的显示面积相对较小因此不适合用于需要大屏幕的应用。2. 如何驱动OLED屏幕显示内容图中这句话很重要3. OLED通讯协议【告诉】4. SSD1306【OLED屏幕】时序告诉SSD1306芯片接收数据后在OLED屏幕上显示5. GDDRAM 【在哪里】横向0~127纵向指定 page0~7想显示某个元素先确定在哪个地方显示三种地址模式页地址模式【常用默认】水平地址模式写完一列会自动跑到下一page继续写垂直地址模式6. OLED命令只显示常用OLED命令7. 如何取模总结I2C总线是一种同步、串行、半双工通信总线广泛应用于各种设备和应用领域。其硬件简单只需要一根数据线和一根时钟线总线接口集成在芯片内部重点掌握工作原理和I2C总线时序为后续利用I2C总线通过OLED通讯协议实现OLED屏幕内容显示。