基于STM32的OLED显示
基于STM32的OLED显示
- 一、什么是OLED
- 二、了解SPI
- SPI协议概括
- 同步串行口
- 三、学号姓名的显示
- 1.汉字点阵获取
- 代码修改
- 3.硬件连接
- 4.烧录编译结果
- 总结
- 参考文献
一、什么是OLED
OLED (Organic Light-Emitting Diode)即有机发光二极管,在手机OLED上属于新型产品,被称誉为“梦幻显示器”。
OLED显示技术与传统的LCD显示方式不同,无需背光灯,采用非常薄的有机材料涂层和玻璃基板(或柔性有机基板),当有电流通过时,这些有机材料就会发光。而且OLED显示屏幕可以做得更轻更薄,可视角度更大,并且能够显著的节省耗电量。>
二、了解SPI
SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,如今越来越多的芯片集成了这种通信协议,比如AT91RM9200。
SPI协议概括
SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。
(1)SDI –SerialDataIn,串行数据输入;
(2)SDO –SerialDataOut,串行数据输出;
(3)SCLK – Serial Clock,时钟信号,由主设备产生;
(4)CS – Chip Select,从设备使能信号,由主设备控制。>
SPI总线四种工作状态:
SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;SPI主模块和与之通信的外设时钟相位和极性应该一致。SPI接口时序如图3、图4所示。
同步串行口
SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。
(1)MOSI– SPI总线主机输出/ 从机输入(SPI Bus Master Output/Slave Input);
(2)MISO– SPI总线主机输入/ 从机输出(SPI Bus Master Input/Slave Output);
(3)SCLK –时钟信号,由主设备产生;
(4)CS – 从设备使能信号,由主设备控制(Chip select),有的IC此pin脚叫SS。>
三、学号姓名的显示
1.汉字点阵获取
下载一个小程序
点击设置
输入你想要的信息
代码修改
在 oledfont.h文件中插入你需要显示的汉字点阵信息
"任",0x08,0x10,0x08,0x78,0x0B,0xC0,0x10,0x40,0x10,0x40,0x30,0x40,0x30,0x40,0x5F,0xFE,
0x90,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x17,0xFC,0x10,0x00,/*"任",0*/
"智",0x20,0x00,0x3E,0x7C,0x48,0x44,0x08,0x44,0xFF,0x44,0x14,0x44,0x22,0x7C,0x40,0x00,
0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,/*"智",1*/
"慧",0x10,0x10,0xFE,0xFE,0x10,0x10,0x7C,0x7C,0x10,0x10,0xFE,0xFE,0x10,0x10,0x3F,0xF8,
0x00,0x08,0x1F,0xF8,0x00,0x08,0x3F,0xF8,0x01,0x00,0x48,0x84,0x48,0x12,0x87,0xF2,/*"慧",2*/"6",0x00,0x00,0x00,0x18,0x24,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x22,0x1C,0x00,0x00,/*"6",0*/
"3",0x00,0x00,0x00,0x3C,0x42,0x42,0x02,0x04,0x18,0x04,0x02,0x42,0x42,0x3C,0x00,0x00,/*"3",1*/
"1",0x00,0x00,0x00,0x08,0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,/*"1",2*/
"9",0x00,0x00,0x00,0x38,0x44,0x42,0x42,0x42,0x46,0x3A,0x02,0x02,0x24,0x18,0x00,0x00,/*"9",3*/
"0",0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,/*"0",4*/
"7",0x00,0x00,0x00,0x7E,0x42,0x04,0x04,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x00,0x00,/*"7",5*/
"0",0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,/*"0",6*/
"3",0x00,0x00,0x00,0x3C,0x42,0x42,0x02,0x04,0x18,0x04,0x02,0x42,0x42,0x3C,0x00,0x00,/*"3",7*/
"0",0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,/*"0",8*/
"5",0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x78,0x44,0x02,0x02,0x42,0x44,0x38,0x00,0x00,/*"5",9*/
"2",0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x02,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00,/*"2",10*/
"0",0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,/*"0",11*/
在text.c文件中修改TEST_MainPage(void)函数
void TEST_MainPage(void)
{ GUI_ShowCHinese(28,20,16,"任智慧",1);GUI_ShowString(4,48,"631907030520",16,1);delay_ms(1500); delay_ms(1500);
}
main主函数如下
#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "gui.h"
#include "test.h"
int main(void)
{ delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 OLED_Init(); //初始化OLED OLED_Clear(0); //清屏(全黑)while(1) { TEST_MainPage(); //主界面显示测试}
}
3.硬件连接
OLEDM模块 | STM32单片机 |
---|---|
VCC | DC 5V/3.3V |
GND | GND |
D1 | PB15 |
CS | PB11 |
RES | PB12 |
DC | PB10 |
D0 | PB13 |
4.烧录编译结果
总结
经过这次的实验,第一次玩到了OLED显示屏,感觉很新奇诶,很好玩,嘿嘿嘿
参考文献
基于stm32的0.96寸OLED显示屏显示数据
SIP百度资料
基于STM32的OLED显示相关推荐
- 基于STM32进行OLED显示
目录 一.SPI接口简介 1.SPI的简介 2. SPI 接口4条线通信: 3.SPI的特征 4.接口框图 5.SPI整体的通讯过程 二.OLED的原理 1.OLED模块参数 2.该模块的特点: 3. ...
- 基于STM32下OLED显示实现文字取模软件配置
在做OLED显示实验时,文字很难编辑出对应的点,从网上找到了这个文字转换软件,以下是软件的配置项,由于是STM32所以自定义格式选择C51格式, 取模方式:列行式 取模走向:逆向 输出数制:16进制 ...
- 基于STM32的OLED播放Bad apple
基于stm32的oled显示badapple 有屏幕的地方就有bad apple 原理 将视频用opencv转换成图片,之后进行图片取模,转化为16进制,使用oled图片显示函数显示. 硬件所需 st ...
- 基于STM32实现OLED滚动显示
基于STM32实现OLED滚动显示 滚动方式 水平滚动 水平加垂直滚动 一.文字取模 二.代码修改 三.硬件连接加结果 总结 参考文献 滚动方式 水平滚动 OLED_WR_Byte(0x2E,OLED ...
- 基于STM32的OLED多级菜单GUI实现(简化版智能手表)
前言:本文的OLED多级菜单UI为一个综合性的STM32小项目,使用多传感器与OLED显示屏实现智能终端的效果.项目中的多级菜单UI使用了较为常见的结构体索引法去实现功能与功能之间的来回切换,搭配DH ...
- 毕业设计 —— 基于STM32手势控制显示系统的设计
目录 一.前言 二.项目背景及资源分享 三.项目简介 1.项目名称 2.系统框架 3.功能简介 4.控制核心 5.最小系统: 6.外围模块: 四.相关设计原理及框图 1.系统设计的原理 2.手势识别原 ...
- 基于stm32的OLED显示屏显示
文章目录 一.内容 二.关于SPI 三.关于OLED 四.功能实现 1)实验准备 2)代码准备 1.显示学号和姓名 2.显示AHT20的温度和湿度 3.滑动显示长字符 3)结果展示 五.参考内容 六. ...
- STM32与OLED显示姓名学号
一.SPI简介 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是由 Motorola 公司提出的一种高速的,全双工,同步的通信总线,被广泛地使用在 ADC.LC ...
- 基于SPI的OLED显示
文章目录 一.SPI协议 1. SPI简介 2. SPI通信原理 3. GPIO口配置 二.OLED原理及应用 1. OLED原理 2. OLED显示 2.1 姓名学号显示 ①准备工作及部分代码 ②实 ...
最新文章
- 有道翻译 excel webservice 失效_VBA实践+excel英文逐句自动有道翻译为中文
- 查询Windows api
- 自定义圆形控件 RoundImageView
- C语言const专题
- 在Java、C#和C++中遍历集合
- Redis 多线程网络模型全面揭秘|网络硬核系列
- python对字符串数组进行排序、依据字符数_Python进行数据的排序以及字符串的操作...
- IDEA优雅整合Maven+SSM框架(详细思路+附带源码)
- AndroidStudio_安卓原生开发_自定义ToastUtils---Android原生开发工作笔记135
- 基于资源的权限系统-数据库设计
- TEANMA(天玛)-公共广播系统中扬声器配置及相关注意事项解析
- 爬虫基础回顾-requests
- 【调剂】2022年燕山大学电气工程学院 程淑红教授“计算机视觉与人工智能”团队调剂招生信息...
- python绘画海贼王_入门级项目实战,Python生成海贼王云图!
- r语言爬虫数据html表格,如何用R语言爬取网页表格数据节省一天工作时间
- CIAA 网络安全模型 — 数据传输安全
- 阿里巴巴 Excel工具easyExcel
- 解决Flutter Android sdkmanager tool not found
- Android JNI 中文字符传递
- 国产android系统哪个好用吗,国产手机中哪个系统优化的最好