OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4833|回复: 0

疯壳AI开源无人机SPI(OLED)

[复制链接]

98

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2017-2-27
在线时间
53 小时
发表于 2020-4-15 14:58:49 | 显示全部楼层 |阅读模式
一、OLED简介
OLEDOrganicElectroluminesence Display)有机发光显示器,与传统的显示器不同的是,传统的显示器需要背光,才能显示;而OLED则不需要,其自身就能够发光。
OLED之所以能够自发光,主要是通过电场驱动有机半导体材料和发光材料通过过载流子注入和复合后实现发光。从本质上来说,就是通过ITO玻璃透明电极作为器件阳极,金属电极作为阴极,通过电源驱动,将电子从阴极传输到电子传输层,空穴从阳极注入到空穴传输层,之后分迁移到发光层,二者相遇后产生激子,让发光分子激发,经过辐射后产生光源。简单来说,一块OLED屏幕,就是由百千万个小灯泡组成
OLED不仅更轻薄、功耗低、亮度高、发光率好、可以显示纯黑色,并且还可以做到弯曲,如当今的曲屏电视和手机等。当今国际各大厂商都争相恐后的加强了对OLED技术的研发投入,使得OLED技术在当今电视、电脑(显示器)、手机、平板等领域灵应用愈加广泛。如下图所示为OLED显示屏模块实物图。
图片1.jpg
二、SPI驱动OLED实验
在本节中应用的到的SPI与飞控开发基础篇《SPI(六轴传感器数据获取)》一节不同,本节用的到的是通过GPIO模拟的SPI,而飞控开发基础篇《SPI(六轴传感器数据获取)》中应用的是STM32硬件SPI。而SPI协议相关知识可以参考飞控开发基础篇《SPI(六轴传感器数据获取)》。
根据原理图可知OLED屏的电气连接关系,如下图所示。
图片2.jpg 图片3.jpg
可知OLED的复位脚RES接在STM32PB6OLED的命令/数据选择脚DC接在STM32PB7OLED的时钟线接在STM32PA5OLED的数据输入接在STM32PA7。这里的OLED模块没有CS片选脚,是因为模块内部已经默认接地了。OLED显示的整体代码编写思路如下。
代码思路
1
管脚配置
1、定义结构体;
2、使能时钟;
3、填充结构体;
4、装载结构体;
2
OLED时序的实现
1、写入数据/命令函数实现。
3
OLED的配置及功能性函数实现
1、OLED初始化;
2、OLED功能性函数实现(如刷屏、描点、清屏等)。
4
逻辑处理
1、显示逻辑。
根据OLED的驱动芯片SSD1306的手册可以得知控制时序,如下图所示。
图片4.jpg
根据时序就可以编写对应时序的代码了。如下图所示为OLED写时序的代码。
图片5.jpg
根据SSD1306手册可得知OLED的初始化流程,如下图所示。
图片6.jpg
OLED初始化代码实现如下图所示。
图片7.jpg
图片8.jpg
图片9.jpg
OLED的所有显示都是基于描点得来的,由点成线,再由线成面。OLED的描点函数代码实现如下图所示。
图片10.jpg
OLED显示单个字符的代码如下图所示。
图片11.jpg
显示字符需要对相应的字符取模,这里已经提供了两种取好模的字体,按照“阴码、逐列式、顺向”的取模方式,分别是12*616*8大小的字体,在oledfont.h里,如下图所示。
图片12.jpg
取模需要通过取模软件,这里使用的是PCtoLCD2002”,该软件有两大功能,一种是字符取模,另一种是图片取模。这里我们用到的是字符取模,根据代码驱动的描点方向,生成的12*6字模的字模选项设置如下图所示。
图片13.jpg
这里以生成12*6字符“1”做举例,按照上图设置好字模选项设置后,输入“1”,点击“生成字模”,即可生成对应的16进制字模代码,如下图所示。
图片14.jpg
本次是实验需要通过OLED显示“COCOFLY”以及“www.fengke.club”,具体实现代码如下。
图片15.jpg
保存编译下载,实现现象如下图。
图片16.jpg

3.遥控器开发基础-【4】SPI(OLED).pdf

1.07 MB, 下载次数: 18

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表