[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屏幕才会出现数字和字母哦!

相关推荐
Book思议-3 小时前
【数据结构】栈与队列全方位对比 + C 语言完整实现
c语言·数据结构·算法··队列
yuan199974 小时前
STM32F103C8T6 串口通信程序实例
stm32·单片机·嵌入式硬件
IT方大同6 小时前
(实时操作系统)线程管理
c语言·开发语言·嵌入式硬件
意法半导体STM326 小时前
【官方原创】STM32H7双核芯片通过 STlink连接失败问题分析 LAT1654
开发语言·前端·javascript·stm32·单片机·嵌入式硬件
夜星辰20237 小时前
MobaXterm会话窗口详解
嵌入式硬件·ssh·调试串口
老约家的可汗7 小时前
list 容器详解:基本介绍与常见使用
c语言·数据结构·c++·list
BT-BOX7 小时前
第7章《Stm32CubeMX+Proteus仿真入门》--独立按键扫描
stm32·嵌入式硬件·proteus
广药门徒7 小时前
PADS 等长处理方法
嵌入式硬件
zd8451015008 小时前
ESP8266 MQTT连接onenet
stm32·单片机