暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在hi3518ev300平台接入OLED(2)

ta是一个搬运工 2021-07-29
709

1 说明

由于业务需要,产品的屏幕选择了OLED,型号为:VGM256064A0W03,供应商深圳市岳邦电子科技有限公司。本文主要说明在OLED屏幕显示汉字、字母、二维码的实现。文中提到的软件可以从百度网盘下载或者从参考网址下载。

链接:https://pan.baidu.com/s/1LCfuBgCpZIg431uRr9vifA

提取码:dq3o

2 使用点阵字库显示汉字和字母

参考网址:

https://blog.twofei.com/embedded/hzk.html

http://www.qqxiuzi.cn/zh/hanzi-gb2312-bianma.php

如上述网址所述,前辈们已经做好了各种字库,字的形状由多个离散的点形成,一个字节控制8个点的亮灭,一个点相当于一个OLED显示单元,所以256*64的屏幕,每行可以显示256/16=16个汉字,可以显示64/16=4行。

字体宽高

说明

HZK 16*16

宋体汉字点阵一个汉字32个字节

HZK 24*24

宋体汉字点阵一个汉字72个字节

HZK 32*32

宋体汉字点阵一个汉字128个字节

HZK 40*40

宋体汉字点阵一个汉字200个字节

HZK 48*48

宋体汉字点阵一个汉字288个字节

ASC 8*12

ASCII字符,一个字符12Byte

ASC 8*16

ASCII字符,一个字符16Byte

ASC 24*48

ASCII字符,一个字符144Byte

如果对字库有其他的要求,可以使用PCtoLCD2002自制字库文件。

2.1 显示中文字符

1:确定点阵库文件,以HZK 16*16为例,16×16点阵,一个汉字32字节

2:在代码中直接输入汉字,即源文件为GBK编码(非UTF-8编码)

3找到改字在点阵库文件的偏移

网盘中的main3.c实现了显示“我们都是工具人!”。

也可以使用中文字库显示英文和标点符号,不过没有ASCII字库那么好看,而且需要调整输入法,比如谷歌拼音如下输入模式

2.2 显示ASCII字符

网盘中的main4.c给出了显示8*12字库字符的关键函数。

3 通过image2lcd显示字符

该方式可以显示任意字符。缺点是必须提前知道要显示的内容。以本产品为例,在windows画图工具输入汉字或英文字符,保存为单色bmp(占用空间小,没有灰阶)或者16bmp(占用空间大,有灰阶,支持多个灰度),再通过image2lcd将图片转换为数组,其他的操作跟点阵数据一样处理。


4 显示二维码

参考开源软件:

https://github.com/ricmoo/QRCode

可以显示数字、字母、标点符号以及包括汉字在内的任意字符,显示一个二维码基本只要几行代码。

    // The structure to manage the QR code


    QRCode qrcode;


    // Allocate a chunk of memory to store the QR codeuint8_t qrcodeBytes[qrcode_getBufferSize()];


    qrcode_initText(&qrcode, qrcodeBytes, 3, ECC_LOW, "HELLO WORLD");
    文章转载自ta是一个搬运工,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论