基于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

猜你喜欢

转载自blog.csdn.net/qq_54761976/article/details/127664506