查看: 1244|回复: 0

【开源教程21】疯壳·开源编队无人机-SPI(OLED)

[复制链接]
发表于 2022-8-31 11:15:41 | 显示全部楼层 |阅读模式
关键词: 开源 , 编队 , 无人机 , SPI , OLED
COCOFLY教程
——疯壳·无人机·系列
SPI(OLED




1.png   
    图1


    一、OLED 简介

    OLED(OrganicElectroluminesence Display)有机发光显示器,与传统的显示器不同的是,传统的显示器需要背光,才能显示;而 OLED 则不需要,其自身就能够发光。
    而 OLED 之所以能够自发光,主要是通过电场驱动:有机半导体材料和发光材料通过过载流子注入和复合后实现发光。从本质上来说,就是通过 ITO 玻璃透明电极作为器件阳极,金属电极作为阴极,通过电源驱动,将电子从阴极传输到电子传输层,空穴从阳极注入到空穴传输层,之后分迁移到发光层,二者相遇后产生激子,让发光分子激发,经过辐射后产生光源。简单来说,一块 OLED 屏幕,就是由百千万个“小灯泡”组成。
    OLED 不仅更轻薄、功耗低、亮度高、发光率好、可以显示纯黑色,并且还可以做到弯曲,如当今的曲屏电视和手机等。当今国际各大厂商都争相恐后的加强了对 OLED 技术的研发投入,使得 OLED 技术在当今电视、电脑(显示器)、手机、平板等领域灵应用愈加广泛。如下图所示为 OLED 显示屏模块实物图。

2.png    
    图2

    二、SPI 驱动 OLED 实验

    在本节中应用的到的 SPI 与飞控开发基础篇《SPI(六轴传感器数据获取)》一节不同,本节用的到的是通过 GPIO 模拟的 SPI,而飞控开发基础篇《SPI(六轴传感器数据获取)》中应用的是 STM32 硬件 SPI。而 SPI 协议相关知识可以参考飞控开发基础篇《SPI(六轴传感器数据获取)》。
    根据原理图可知 OLED 屏的电气连接关系,如下图所示。

3.0.png
3.1.png    
    图3
    可知 OLED 的复位脚 RES 接在 STM32 的 PB6、OLED 的命令/数据选择脚DC 接在 STM32 的 PB7、OLED 的时钟线接在 STM32 的 PA5、OLED 的数据输入接在 STM32 的 PA7。这里的 OLED 模块没有 CS 片选脚,是因为模块内部已经默认接地了。OLED 显示的整体代码编写思路如下。

    代码思路

表1.png    
    表1
    根据 OLED 的驱动芯片 SSD1306 的手册可以得知控制时序,如下图所示。

4.png    
    图4
    根据时序就可以编写对应时序的代码了。如下图所示为 OLED 写时序的代码。

5.png    
    图5
    根据 SSD1306 手册可得知 OLED 的初始化流程,如下图所示。

6.png    
    图6

    OLED 初始化代码实现如下图所示。

7.0.png
7.1.png
7.2.png    
    图7
    OLED 的所有显示都是基于描点得来的,由点成线,再由线成面。OLED 的描点函数代码实现如下图所示。

8.png
    图8
    OLED 显示单个字符的代码如下图所示。

9.png    
    图9
    显示字符需要对相应的字符取模,这里已经提供了两种取好模的字体,按照“阴码、逐列式、顺向”的取模方式,分别是 12*6、16*8 大小的字体,在 oledfont.h 里,如下图所示。

10.png   
    图10
    取模需要通过取模软件,这里使用的是“PCtoLCD2002”,该软件有两大功能,一种是字符取模,另一种是图片取模。这里我们用到的是字符取模,根据代码驱动的描点方向,生成的 12*6 字模的字模选项设置如下图所示。

11.png    
    图11
    这里以生成 12*6 的字符“1”做举例,按照上图设置好字模选项设置后,输入“1”,点击“生成字模”,即可生成对应的 16 进制字模代码,如下图所示。

12.png    
    图12
    本次是实验需要通过 OLED 显示“COCOFLY”以及“www.fengke.club”, 具体实现代码如下。

13.png    
    图13
    保存编译下载,实现现象如下图。

14.png    
    图14



如需定制开发,请通过官网“疯壳”网页底部的“联系我们”进行联系

文件下载请点击:   【4】SPI(OLED).pdf (1.31 MB)

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

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表