查看: 942|回复: 0

【遥控器开发基础教程4】疯壳·开源编队无人机-SPI(OLED)

[复制链接]
  • TA的每日心情
    开心
    2022-4-17 15:37
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2022-8-22 10:22:19 | 显示全部楼层 |阅读模式
    分享到:
    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



    完整配套资料和对应开源套件地址:http://www.fengke.club

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

    文件下载请点击:    【4】SPI(OLED).pdf (1.31 MB, 下载次数: 1)
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-12-19 01:48 , Processed in 0.125765 second(s), 19 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.