当前位置:网站首页>【遥控器开发基础教程4】疯壳·开源编队无人机-SPI(OLED)
【遥控器开发基础教程4】疯壳·开源编队无人机-SPI(OLED)
2022-08-03 00:03:00 【efans_Mike】
COCOFLY教程
——疯壳·无人机·系列
SPI(OLED)
图1
一、OLED 简介
OLED(OrganicElectroluminesence Display)有机发光显示器,与传统的显示器不同的是,传统的显示器需要背光,才能显示;而 OLED 则不需要,其自身就能够发光。
而 OLED 之所以能够自发光,主要是通过电场驱动:有机半导体材料和发光材料通过过载流子注入和复合后实现发光。从本质上来说,就是通过 ITO 玻璃透明电极作为器件阳极,金属电极作为阴极,通过电源驱动,将电子从阴极传输到电子传输层,空穴从阳极注入到空穴传输层,之后分迁移到发光层,二者相遇后产生激子,让发光分子激发,经过辐射后产生光源。简单来说,一块 OLED 屏幕,就是由百千万个“小灯泡”组成。
OLED 不仅更轻薄、功耗低、亮度高、发光率好、可以显示纯黑色,并且还可以做到弯曲,如当今的曲屏电视和手机等。当今国际各大厂商都争相恐后的加强了对 OLED 技术的研发投入,使得 OLED 技术在当今电视、电脑(显示器)、手机、平板等领域灵应用愈加广泛。如下图所示为 OLED 显示屏模块实物图。
图2
二、SPI 驱动 OLED 实验
在本节中应用的到的 SPI 与飞控开发基础篇《SPI(六轴传感器数据获取)》一节不同,本节用的到的是通过 GPIO 模拟的 SPI,而飞控开发基础篇《SPI(六轴传感器数据获取)》中应用的是 STM32 硬件 SPI。而 SPI 协议相关知识可以参考飞控开发基础篇《SPI(六轴传感器数据获取)》。
根据原理图可知 OLED 屏的电气连接关系,如下图所示。
图3
可知 OLED 的复位脚 RES 接在 STM32 的 PB6、OLED 的命令/数据选择脚DC 接在 STM32 的 PB7、OLED 的时钟线接在 STM32 的 PA5、OLED 的数据输入接在 STM32 的 PA7。这里的 OLED 模块没有 CS 片选脚,是因为模块内部已经默认接地了。OLED 显示的整体代码编写思路如下。
代码思路
表1
根据 OLED 的驱动芯片 SSD1306 的手册可以得知控制时序,如下图所示。
图4
根据时序就可以编写对应时序的代码了。如下图所示为 OLED 写时序的代码。
图5
根据 SSD1306 手册可得知 OLED 的初始化流程,如下图所示。
图6
OLED 初始化代码实现如下图所示。
图7
OLED 的所有显示都是基于描点得来的,由点成线,再由线成面。OLED 的描点函数代码实现如下图所示。
图8
OLED 显示单个字符的代码如下图所示。
图9
显示字符需要对相应的字符取模,这里已经提供了两种取好模的字体,按照“阴码、逐列式、顺向”的取模方式,分别是 12*6、16*8 大小的字体,在 oledfont.h 里,如下图所示。
图10
取模需要通过取模软件,这里使用的是“PCtoLCD2002”,该软件有两大功能,一种是字符取模,另一种是图片取模。这里我们用到的是字符取模,根据代码驱动的描点方向,生成的 12*6 字模的字模选项设置如下图所示。
图11
这里以生成 12*6 的字符“1”做举例,按照上图设置好字模选项设置后,输入“1”,点击“生成字模”,即可生成对应的 16 进制字模代码,如下图所示。
图12
本次是实验需要通过 OLED 显示“COCOFLY”以及“www.fengke.club”, 具体实现代码如下。
图13
保存编译下载,实现现象如下图。
图14
更多完整学习资料和对应开源套件,请登陆官网:“疯壳”
如需定制开发,请通过官网“疯壳”网页底部的“联系我们”进行联系
边栏推荐
- 如何正确地配置入口文件?
- UPC2022暑期个人训练赛第23场(Credit Card Payment)
- 2022 Shandong International Youth Eye Health Industry Exhibition, Vision Health Exhibition, Optometry Exhibition
- Last Common Ancestor (LCA) Study Notes | P3379 【Template】Least Common Ancestor (LCA) Problem Solution
- UE5 官方案例Lyra 全特性详解 8.如何用配置表初始化角色数据
- 【图像分类】2021-EfficientNetV2 CVPR
- 并查集总结
- 如何修复 SAP UI5 aggregation with cardinality 0..1 相关的错误消息
- 【问题征集】向 iPod 之父、iPhone 联合设计者、Google Nest 创始人 Tony Fadell 提问啦
- 2149. 按符号重排数组
猜你喜欢
随机推荐
D experimental new anomaly
浅谈I2C知识
机器学习-特征映射方法
Connect the Snowflake of CKAN tutorial CKAN to release to open data portal
公司招个程序员,34岁以上两年一跳的不要,开出工资以为看错了
RollBack Rx Professional RMC 安装教程
Jmeter二次开发实现rsa加密
js基础知识整理之 —— 全局作用域
vant-swipe adaptive picture height + picture preview
nmap: Bad CPU type in executable
我们来浅谈代码语言的魅力
esp32和ros2基础篇草稿-micro-ros-
vue3的keepAlive缓存组件
高数---二重积分
机电设备制造企业,如何借助ERP系统做好客供料管理?
7.31
Carefully organize 16 MySQL usage specifications to reduce problems by 80% and recommend sharing with the team
DownMusic summary record
【图像分类】2022-MPViT CVPR
基于rt-thread studio的STM32裸机开发——LED