[Proteus 和 stm32f103c8t6]的使用控制OLED篇]

我们这次展示使用的是 HAL库 和 proteus 的结合仿真 我的proteus已经汉化,大家可以找一下教程 方便后面的学习

OLED 我们都知道 是i2C协议来驱动,下面我讲解一下i2C

i2C集成电路总线,是两线式串行通信总线
数据线 SDA(Serial Data Line)
时钟线 SCL(Serial Clock Line)

主从关系:主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被
认为是从器件。在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。
数据传送:
如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主
机终止数据传送。
如果主机要接收从器件的数据,首先由主器件寻址从器件,然后主机接收从器件发送的数据,最
后由主机终止接收过程。
时钟同步:SCL用于数据的时钟同步,确保主从设备之间的数据传输同步进行。
主要特点
硬件简单:I2C总线只需要一根数据线和一根时钟线两根线,总线接口已经集成在芯片内部,不需要特
殊的接口电路。
多主机总线:I2C总线是一个真正的多主机总线,如果两个或多个主机同时初始化数据传输,可以通过
冲突检测和仲裁防止数据破坏。
在线检测:I2C总线可以通过外部连线进行在线检测,便于系统故障诊断和调试。
数据传输与地址设定:数据传输和地址设定由软件设定,非常灵活。总线上的器件增加和删除不影响其
他器件正常工作。
负载能力:由于线路中电容会影响总线传输速度,I2C总线的负载能力为400pF,因此可以估算出总线
允许长度和所接器件数量。
主从关系:主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被
认为是从器件。在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。
数据传送:
如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主
机终止数据传送。
如果主机要接收从器件的数据,首先由主器件寻址从器件,然后主机接收从器件发送的数据,最
后由主机终止接收过程。
时钟同步:SCL用于数据的时钟同步,确保主从设备之间的数据传输同步进行。
主要特点
硬件简单:I2C总线只需要一根数据线和一根时钟线两根线,总线接口已经集成在芯片内部,不需要特
殊的接口电路。
多主机总线:I2C总线是一个真正的多主机总线,如果两个或多个主机同时初始化数据传输,可以通过
冲突检测和仲裁防止数据破坏。
在线检测:I2C总线可以通过外部连线进行在线检测,便于系统故障诊断和调试。
数据传输与地址设定:数据传输和地址设定由软件设定,非常灵活。总线上的器件增加和删除不影响其
他器件正常工作。
负载能力:由于线路中电容会影响总线传输速度,I2C总线的负载能力为400pF,因此可以估算出总线
允许长度和所接器件数量。
主从关系:主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被
认为是从器件。在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。
数据传送:
如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主
机终止数据传送。
如果主机要接收从器件的数据,首先由主器件寻址从器件,然后主机接收从器件发送的数据,最
后由主机终止接收过程。
时钟同步:SCL用于数据的时钟同步,确保主从设备之间的数据传输同步进行。
主要特点
硬件简单:I2C总线只需要一根数据线和一根时钟线两根线,总线接口已经集成在芯片内部,不需要特
殊的接口电路。
多主机总线:I2C总线是一个真正的多主机总线,如果两个或多个主机同时初始化数据传输,可以通过
冲突检测和仲裁防止数据破坏。
在线检测:I2C总线可以通过外部连线进行在线检测,便于系统故障诊断和调试。
数据传输与地址设定:数据传输和地址设定由软件设定,非常灵活。总线上的器件增加和删除不影响其
他器件正常工作。
负载能力:由于线路中电容会影响总线传输速度,I2C总线的负载能力为400pF,因此可以估算出总线
允许长度和所接器件数量。
起始信号由主设备发起,用于通知总线上的所有设备即将开始数据传输。
当SCL为高电平时,SDA由高电平变为低电平,产生一个下降沿,表示起始信号的开始。

停止信号也由主设备发起,用于通知总线上的所有设备数据传输已经结束。
当SCL为高电平时,SDA由低电平变为高电平,产生一个上升沿,表示停止信号的开始。


OLED驱动程序 我已经优化 需要的可以私信我
下面我们开始搭建仿真

我们在箭头指向的位置 寻找我们所需要的元器件

button 是按钮

cap 是电容

crystal 是晶振

oled 是屏幕

res是电阻

我们在这个位置是寻找

电源 地 标签的位置

这个是我们单片机最小系统的搭建

由于仿真平台的限制 我们不采用下面cubemx的iic 我们用软件iic来进行示例

关于引脚的选择 配置如下图

我们是高电平 开漏输出 引脚的配置完成 我们打开keil 就好喽

启用OLED的时候 一定要初始化

在驱动程序里面我们可以找到我已经封装好的程序 大家调用函数即可,由于proteus仿真平台反应较慢 大概需要30s左右 OLED屏幕才会出现数字和字母哦!

相关推荐
三易串口屏12 分钟前
实验22 心跳曲线实验
stm32·tft屏·hmi·三易串口屏·嵌入式ui
智者知已应修善业5 小时前
【proteus设计文氏正弦波信号发生器】2023-5-9
驱动开发·经验分享·笔记·硬件架构·proteus·硬件工程
LCG元6 小时前
STM32实战:基于STM32F103的家用新风系统智能控制器(空气质量监测+PID调速)
stm32·单片机·嵌入式硬件
LCG元7 小时前
STM32实战:基于STM32F103的多通道工业数据采集与监控系统(Modbus RTU+上位机)
stm32·单片机·嵌入式硬件
.千余7 小时前
【C++】C++类与对象2:C++构造函数、运算符重载与流输入输出全面解析
c语言·开发语言·前端·c++·经验分享
资深流水灯工程师7 小时前
STM32 单片机 USB 通讯原理与 HAL 库实战详解
stm32·单片机·嵌入式硬件
资深流水灯工程师7 小时前
STM32 I2C 通讯原理与三种实现模式详解
stm32·单片机·嵌入式硬件
zlinear数据采集卡7 小时前
电源纹波杀手:LDO线性稳压电路的“降噪哲学”——基于ZLinear数据采集卡的深度解析
单片机·嵌入式硬件·fpga开发·硬件架构
资深流水灯工程师7 小时前
STM32 USART 通讯原理与三种模式详解
stm32·单片机·嵌入式硬件
资深流水灯工程师7 小时前
STM32 单片机 SPI 通讯原理详解
stm32·单片机·嵌入式硬件