【u8g2】关于OLED的IIC和SPI两种通信方式

1 篇文章 0 订阅

关于SPI_OLED

SPI通信主要有2线、3线、4线等,标准四线包括:SSEL(片选,也叫做SCS)、SCLK(时钟,也叫做SCK)、MOSI(主机输出从机输入MasterOutput SlaveInput)和MISO(主机输入从机输出)。

在SPI通信模式的OLED上,有七根线,分别是:GND、VCC、D0、D1、RES、DC、CS,这四根线分别为:

PINDescription
GND
VCC电源(3.3V)
D0CLK时钟线
D1MOSI数据线
RES复位(可以直接接到MCU的RESET或者直接接高)
DC数据/命令
CS片选(如果只有一片的情况下可以直接拉低或者悬空)

需要注意的是其中没有MISO,因为屏幕一般不需要去读取数据,而是直接显示,同时也确定了SPI通信不需要等待应答。

关于IIC和SPI刷新率

在使用IIC通信的OLED时,显示进度条发现需要150ms左右,而使用SPI通信的OLED显示进度条只需要70ms左右,SPI通信差不多是IIC通信的两倍速度。

关于硬件SPI和软件SPI刷新率

硬件即使用微控制器内部的硬件外设来实现SPI通信,而软件SPI即通过CPU控制引脚输出高低电平模拟SPI时序通信,区别:

硬件SPI:

  • 高效性:使用了专门的SPI硬件模块,数据传输更快延迟更低
  • 占用CPU资源少:不需要CPU干涉
  • 简单的接口调用:标准库中提供了SPI的相关API函数
  • 可靠性:具有更好的信号完整性和抗干扰能力

软件SPI:

  • 灵活性:可以使用任意GPIO引脚,不会被硬件SPI固定的GPIO所局限
  • 可配置性:可以通过软件自由设置SPI总线的频率和时序,适配不同设备的需求
  • 资源占用高:需要CPU干涉,可能会导致CPU负担加重
  • 实现复杂:需要编写SPI时序函数

经过测试,同样是刷新进度条,软件SPI需要70ms左右,而硬件SPI则达到了惊人的10us左右!直接快了70000/10=7000倍,而且这还是在没有加DMA的情况下,所以目前够用就不考虑在加DMA了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值