基于IIC和SPI协议的OLED显示

一、了解SPI

1、SPI的定义

SPI(Serial Peripheral Interface)就是串行外围设备接口。
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。SPI 是一个环形总线结构,由 ss(cs)、sck、sdi、sdo 构成,时序主要是在 sck 的控制下,两个双向移位寄存器进行数据交换。
上升沿发送、下降沿接收、高位先发送。
上升沿到来的时候,sdo 上的电平将被发送到从设备的寄存器中。
下降沿到来的时候,sdi 上的电平将被接收到主设备的寄存器中。

2、SPI的连接方式

在这里插入图片描述
SS( Slave Select):从设备选择信号线,常称为片选信号线。
SCK (Serial Clock):时钟信号线,用于通讯数据同步。
MOSI (Master Output, Slave Input):主设备输出/从设备输入引脚。
MISO(Master Input,,Slave Output):主设备输入/从设备输出引脚。

二、使用0.96寸OLED显示屏显示数据

1、运行商家给出的demo程序

下载链接
http://www.lcdwiki.com/res/Program/OLED/0.96inch/SPI_SSD1306_MSP096X_V1.0/0.96inch_SPI_OLED_Module_SSD1306_MSP096X_V1.0.zip
(资料链接来源https://blog.csdn.net/qq_43279579/article/details/111414037
下载好资料包后运行芯片相应的keil代码。

2、连接开发板和显示屏

连接方式如下
在这里插入图片描述

3、运行结果

在这里插入图片描述

三、自行修改程序实现显示

首先得先用软件生成文字代码
如图

"李",0x01,0x00,0x01,0x00,0x7F,0xFC,0x03,0x80,0x05,0x40,0x09,0x20,0x31,0x18,0xC1,0x06,
0x0F,0xE0,0x00,0x40,0x00,0x80,0xFF,0xFE,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,
"欢",0x00,0x80,0x00,0x80,0xFC,0x80,0x04,0xFC,0x05,0x04,0x49,0x08,0x2A,0x40,0x14,0x40,
0x10,0x40,0x28,0xA0,0x24,0xA0,0x45,0x10,0x81,0x10,0x02,0x08,0x04,0x04,0x08,0x02,

实现显示代码

void TEST_MainPage(void)
{	
	GUI_ShowString(28,0,"lihuan",16,1);//英文姓名
	GUI_ShowCHinese(28,20,16,"李欢",1);//中文姓名
	GUI_ShowString(4,48,"632007030418",16,1);//数字详细
	delay_ms(1500);		
	delay_ms(1500);
}

main函数

int main(void)
{	
	delay_init();	    	       //延时函数初始化	  
	OLED_Init();			         //初始化OLED  
	OLED_Clear(0);             //清屏(全黑)
	while(1) 
	{	
		TEST_MainPage();         //界面显示
	}
}

保存调试生成hex文件,并烧录到芯片中,显示屏将会显示

四、显示结果

在这里插入图片描述

五、参考

https://blog.csdn.net/qq_43279579/article/details/111414037

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: .96 OLEDIICSPI的区别在于通信协议不同。IIC是一种串行通信协议,需要两根线(SCL和SDA)进行数据传输,而SPI是一种高速串行通信协议,需要四根线(SCK、MOSI、MISO和SS)进行数据传输。SPI通信速度更快,但需要更多的引脚,而IIC则需要更少的引脚,但通信速度较慢。在选择使用哪种通信协议时,需要根据具体的应用场景和需求来决定。 ### 回答2: 0.96 OLED是一种小巧的显示屏,常见于Arduino、Raspberry Pi等开源单板计算机、嵌入式系统等场景。在实际应用中,OLED显示屏可以采用IICSPI两种不同的协议进行驱动。 IICSPI都是串行通信协议,实现了设备之间数据传输的目的。但是,它们在传输方式、速度、协议规范等方面存在一些差异。 1. 传输方式: IIC是一种基于总线的协议,适用于多个设备之间的数据传输。单个主设备通过发送指令,控制多个从设备进行数据交换。IIC总线上的设备通过两根线(SDA和SCL)进行数据传输。 SPI是一种点对点的通信协议,一对主从设备之间需要四根线(SCK、MOSI、MISO、SS)进行通信。其中,主设备通过控制CS(chip select)引脚和从设备建立连接,然后通过其他引脚进行数据传输。 2. 速度: IIC的速度一般比SPI慢,在100kHz到400kHz之间,但可以通过修改控制寄存器的值来调整时钟速度。 SPI的速度一般较快,可以达到MHz级别。SPI的速度受到主从设备的处理能力、时钟速度等多个因素的制约。 3. 协议规范: IIC协议规范较为简洁,通常分为读和写两种操作,可以通过发送地址和数据实现设备之间的数据交换。 SPI协议规范较为灵活,可以通过发送指令、数据、状态等多种信息实现设备间交互,灵活性较高。 从以上三个方面来看,IICSPI协议特性上存在较大的差异。在实际应用中,需要结合系统环境和硬件条件,选择合适的协议模式。如果需要在多个设备之间进行数据传输,可以选择IIC总线模式;如果需要较快的数据传输速度,可以选择SPI模式。 ### 回答3: 0.96寸OLED屏幕是一种非常常见的显示屏设备,在嵌入式系统和一些小型设备中被广泛应用。IICSPI是两种常用于控制OLED屏幕的通讯方式。 IIC是一种串行通信协议,也称为I2C。它采用双线传输模式,包括一个数据线和一个时钟线。在IIC通信中,Master设备控制通信的时序、速率与数据传递逻辑,Scl(时钟线)控制信号的传输速率,Sda(数据线)是数据信号传输的线路。IIC协议使用地址来寻址Slave设备,Master向Slave传送数据时一般会先发送一个地址,然后是读或写命令或数据。IIC协议虽然速率较SPI较慢,但是控制芯片的引脚数目比较少,非常适合资源受限的小型设备。 SPI是一种串行总线协议,它由4根线组成,包括一个时钟线、一个双向数据线MOSI(Master Out Slave In)和MISO(Master In Slave Out),还有一个片选线CS(Chip Select)。SPI采用全双工通讯模式,可以进行高速的数据传输,因此SPI通信速度比IIC快,且传输的数据量更大,在数据量大的情况下更为适用。 综上所述,IICSPI通信方式各有优缺点。IIC通信方式适用于需要控制的引脚数比较少的小型设备,SPI通信方式适用于需要高速数据传输的大型设备。具体选择哪一种通信方式,应该根据具体的应用场景来进行选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值