基于STM32的OLED显示屏显示数据

一、SPI简介

1、SPI的定义

SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是MISO(数据输入),MOSI(数据输出),SCLK(时钟),CS(片选)。

MOSI --主设备数据输出,从设备数据输入
MISO --主设备数据输入,从设备数据输出
SCLK --时钟信号,由主设备产生
CS --从设备使能信号,由主设备控制
在这里插入图片描述

2、SPI的工作过程

在这里插入图片描述这是一个主机的通讯时序。NSS、SCK、MOSI 信号都由主机控制产生,而 MISO 的信号由从机产生,主机通过该信号线读取从机的数据。MOSI 与 MISO 的信号只在 NSS 为低电平的时候才有效,在 SCK 的每个时钟周期 MOSI 和 MISO 传输一位数据。

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

1、OLED显示屏

在这次的实验中需要使用OLED显示屏
关于OLED显示屏的介绍,见以下链接:http://www.lcdwiki.com/zh/0.96inch_SPI_OLED_Module

2、下载程序

用厂家给的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
在这里插入图片描述在这里插入图片描述

3、字模提取

涉及到中文点阵的有关知识。
并不需要显示所有的中文,只要将需要显示的文字添加到程序中。
需要使用到字模提取软件PCtoLCD2002完美版,软件的具体配置信息也在下载文件中,可以在如下链接下载:https://pan.baidu.com/s/1B4Cfi5Ji8ifcJ4g7DKTbog
提取码:1121

4、修改代码

在main.c文件中,修改主函数的代码

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


5、编译运行

编译运行,没有错误,并且生成了hex文件
在这里插入图片描述

6、烧录文件

打开mcuisp软件,按如下步骤进行
搜索串口
选择上一节中生成的hex文件
开始编程
出现如下字样说明烧录成功

在这里插入图片描述

7、接线

按照下图的对应关系接线
在这里插入图片描述

三、总结

在这次实验中,我学习了并且理解了OLED显屏和汉字点阵编码原理,并且使用STM32F103的SPI接口实现了在OLED显示屏上显示自己的学号和姓名。整体的操作步骤并不难,因为都是在已有的代码上稍微修改的。但是在完成实验之余,理解原理也是十分重要的。

参考文献

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

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值