ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-11-21 13:34:00  阅读:205  来源: 互联网

标签:显示 16 显示屏 STM32 SPI OLED 0.96


文章目录

实验要求

理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能:

  1. 显示自己的学号和姓名;

  2. 显示AHT20的温度和湿度;

  3. 上下或左右的滑动显示长字符,比如“Hello,欢迎来到重庆交通大学物联网205实训室!”或者一段歌词或诗词(最好使用硬件刷屏模式)。

一、了解SPI(串行外设接口)

  • SPI的定义

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

  1. SPI的连接方式
    在这里插入图片描述
    SS( Slave Select):从设备选择信号线,常称为片选信号线。
    SCK (Serial Clock):时钟信号线,用于通讯数据同步。
    MOSI (Master Output, Slave Input):主设备输出/从设备输入引脚。
    MISO(Master Input,,Slave Output):主设备输入/从设备输出引脚。
  2. SPI的通讯过程
    在这里插入图片描述
    MOSI 与 MISO 的信号只在 NSS 为低电平的时候才有效,在 SCK 的每个时钟周期 MOSI 和 MISO 传输一位数据。

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

  1. 实验工具与材料
    软件:keil
    硬件:PC机,STM32开发板(本过程采用的是野火stm32mini开发板),0.96寸OLED显示屏,下载器(本过程采用ST_Link)

  2. 0.96寸OLED显示屏相关介绍
    参考下面链接:
    http://www.lcdwiki.com/zh/``0.96inch_SPI_OLED_Module

  3. 运行厂家给出的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

②打开资料包,选择与自己平台相同的实例,打开Demo的工程,使用keil编译
③将程序烧录到开发板
④连接显示屏和开发板
在这里插入图片描述
⑤运行结果
在这里插入图片描述

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

显示要求: 显示姓名 显示一串数字

1.姓名中文的点阵(16*16)
由于程序并不需要显示所有的中文,所以将对应需要的文字添加到程序就可以了。
使用PCtoLCD2002生成要用到的字的字模 记得在选项里更改部分参数
在这里插入图片描述实现显示代码

void TEST_MainPage(void)
{	
	GUI_ShowCHinese(28,20,16,"***",1);
	//GUI_ShowString(40,32,"64X128",16,1);
	GUI_ShowString(4,48,"***",16,1);
	//GUI_ShowString(4,48,"www.lcdwiki.com",16,1);
	delay_ms(1500);		
	delay_ms(1500);
}

main函数

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

烧录显示结果
请添加图片描述

总结

通过使用SPI通信方式进行OLED的显示,接触到了许多新鲜的事物,比如说中文字库点阵、OLED屏幕滑动显示等,同时与I2C通信方式进行OLED显示进行了对比,发现SPI的速度确实要比I2C的传输速度更快,更适合用作高速传输通信。由于我也是初学SPI,如有错误希望大家批评指正。

参考的哈莉特博客

标签:显示,16,显示屏,STM32,SPI,OLED,0.96
来源: https://blog.csdn.net/big_west/article/details/121452301

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有