理论教育 OLED驱动实现|基于物联网的STM32应用与实践

OLED驱动实现|基于物联网的STM32应用与实践

时间:2023-11-09 理论教育 版权反馈
【摘要】:对于OLED的驱动,不同型号的编程略有不同。本节以0.96′OLED模块为例,讲述其编程方法。该模块采用原装维信诺高亮OLED屏,采用SSD1306驱动IC。表5.1ATK-0.96’OLED模块通信接口方式设置2.模块引脚说明模块引脚说明见表5.2所示。初始化OLED所用的管脚。使用ATK-0.96’OLED模块,采用4线SPI模式,实现显示如图5.5所示的内容,第一屏内容持续时间3s,第二屏持续时间3s,最后一屏一直显示,时间不断更新。图5.5OLED应用实例编程前分析如下。

OLED驱动实现|基于物联网的STM32应用与实践

对于OLED的驱动,不同型号的编程略有不同。本节以0.96′OLED模块为例,讲述其编程方法。

1.特性参数

ATK-0.96’OLED模块是ALIENTEK推出的一款小尺寸(0.96寸)、高亮、自带升压电路的高性能OLED显示模块,分辨率为128×64。该模块采用原装维信诺高亮OLED屏,采用SSD1306驱动IC。该芯片内部集成DCDC升压,仅需3.3V供电即可正常工作,无需用户再添加升压DCDC电路。

模块支持8位6800并口、8位8080并口、IIC以及4线SPI等4种通信接口。通过模块背面的BS1、BS2焊盘,可以自行设置模块的接口方式。默认为8位8080并口。

ATK-0.96’OLED模块支持多种通信接口,通过模块背面的BS1、BS2,可以自行设置块的通信接口方式,见表5.1所示。

表5.1 ATK-0.96’OLED模块通信接口方式设置

2.模块引脚说明

模块引脚说明见表5.2所示。

表5.2 ATK-0.96’OLED模块各引脚功能描述

续表

3.OLED驱动

对于OLED驱动编程,一般根据操作时序图和厂家给出的指令编程,须大量阅读其相关资料,编程工作量相当大,一般在软件编程时使用,不采取上述方法。目前比较流行的方法是阅读和分析厂家给的相关例程,总结出相关函数并放入指定文件夹,以供实际使用时调用。

OLED编程步骤如下。

(1)初始化OLED所用的管脚。

(2)初始化OLED(一般使用官方推荐的初始化序列程序)。

(3)编写OLED屏幕显示程序。

由于显示时需要提供要显示字符的字模,厂家已给出了ASCⅡ的6×8字模和8×16字模,汉字和图形需使用取模来实现,方法是建立数组来保存经取模软件获得的字模。一般所有使用到的汉字用一个数组,图形用一个数组。取模软件可从网上下载得到,例如PCtoLCD2002等。

【例5.2】使用ATK-0.96’OLED模块,采用4线SPI模式,实现显示如图5.5所示的内容,第一屏内容持续时间3s,第二屏持续时间3s,最后一屏一直显示,时间不断更新。(www.daowen.com)

图5.5 OLED应用实例

编程前分析如下。

第一屏是显示图形,可使用画图软件制作该图形。由于显示模块分辨率为128×64,制作时像素一定为128×64,制作完成后使用取模软件,将生成的图形字模保存到显示图像函数指定的数组中,以供调用。

第二屏显示的英文和汉字字符,英文可使用显示字符串函数显示,汉字使用取模软件把用到的汉字取模(包括下一屏的汉字),并将生成的字模保存到显示汉字函数指定的数组中,以供调用。

第三屏显示的数值和汉字字符,数值可使用显示数字函数来显示。但注意根据时间不断更新,可使用定时器实现。本例使用RTC定时器来实现。

编程要点如下。

(1)初始化数OLED所用引脚。

(2)初始化RTC定时器。

(3)制作位图文件,并将位图文件取模,保存到显示图像函数指定的数组中。

(4)使用取模软件把用到的汉字取模,并将生成的字模保存到显示汉字函数指定的数组中。

(5)编写主函数,调用初始化、显示、延时等函数,完成指定功能。

(6)编写定时器中断服务程序,实现时间的不断更新。

由于本程序代码很长,特别是整理官方应用实例所得的相关函数代码很大,因此本程序仅给出主函数。通过主函数,大家可自行分析编程的基本方法。

主要程序代码如下。

注意:在整理厂家给出的OLED相关函数时,由于给的例程一般都是英文,一定要做好中文注释的标注,同时把OLED所用引脚初始化也都放在同一个文件夹中,以方便以后在做工程时调用。同时在使用时不要忘记添加相关文件到工程,并指明编译路径。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈