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

相关推荐
沐欣工作室_lvyiyi32 分钟前
基于单片机的智能提醒药盒设计(论文+源码)
单片机·嵌入式硬件
常州晟凯电子科技40 分钟前
sigmaStar SSC8836Q/SSC8826Q开发笔记之环境搭建和SDK编译
笔记·嵌入式硬件·物联网·视频编解码
白山编程大哥1 小时前
C语言篇:可变参数函数
c语言·开发语言
水饺编程1 小时前
第1章:开发环境搭建,在 Windows 中安装 VS 2019
linux·c语言·汇编·visual studio
ebiobiz2 小时前
Zig 嵌入式底层库选择与 build.zig 组织指南
c语言·c++·嵌入式硬件·mcu
Zw-awa10 小时前
反馈:让系统知道自己做得对不对
stm32
女神下凡13 小时前
芯参谋(38):NAND_MCP_电路设计指南
arm开发·单片机·嵌入式硬件·设计规范
嵌入式学习菌13 小时前
FreeRTOS 中断管理实战:BASEPRI 寄存器实验
单片机·嵌入式硬件
HRTOS14 小时前
HRTOS:一个名字背后的目标——不断逼近硬实时
经验分享·单片机·系统架构·51单片机
UrSpecial16 小时前
GPIO 是什么?
单片机·嵌入式硬件