基于HiSpark Wi-Fi IoT套件_5-OLED中文显示

上一篇报告已经过去一个月了,主要是公司项目太急,耽搁太长时间。上一次的报告主要主要介绍了HI3861的IIC操作,控制OLED显示英文“hello world”,当时调试的时候其实是想显示中文的,但是因为原先IAR开发环境下的中文显示程序移植到鸿蒙里面后居然一堆错误,编译器差异文中对应细节会详述,所以只显示了英文。

那之后总归觉得OLED怎么也得能显示中文吧,所以本篇主要介绍怎么在OLED上显示中文,当然是基于上次报告的代码,最终代码会在文末附件里。主要内容有如下几点:

1、 汉字取模

2、 代码编写修改

3、 烧录测试

01

汉字取模

上次报告已经介绍过,套件使用的OLED显示cache如下图所示,显示点阵对应cache每个字节的顺序是从左到右从上到下,而显示的每个字节的bit是高位在下。

通过显存与点阵对应关系,那汉字取模要遵循字节从左到右从上到下,字节内为纵向8点(一个字节位数)下高位取模方式,使用的取模软件是“LcmZimoLCD字模提取工具软件”,报告后边会在附件中体现。因此,最终软件设置界面设置内容如下图所示:

设置完成后点击“参数确认“并在下方文字框中输入”你好“并点击输入字串进入下一界面,下一界面如下图所示:

// ---------   汉字字模的数据结构定义 ----------- //

typedef struct typFNT_GB1   // 汉字字模数据结构

{

      signed char Index[2];        // 汉字内码索引

      char Msk[32];                   // 点阵码数据

};

///

// 汉字字模表                                             //

// 汉字库: 宋体16.dot 纵向取模下高位,数据排列:从左到右从上到下//

///

struct typFNT_GB16 code GB_16[] = // 数据表

{

"你",0x40,0x20,0xF8,0x07,0x40,0x20,0x18,0x0F,

      0x08,0xC8,0x08,0x08,0x28,0x18,0x00,0x00,

      0x00,0x00,0xFF,0x00,0x00,0x08,0x04,0x43,

      0x80,0x7F,0x00,0x01,0x06,0x0C,0x00,0x00,

"好",0x10,0x10,0xF0,0x1F,0x10,0xF0,0x80,0x82,

      0x82,0x82,0xE2,0x92,0x8A,0xC6,0x80,0x00,

      0x40,0x22,0x15,0x08,0x14,0x63,0x00,0x00,

      0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00

};

// 汉字表:

// 你好

此处生成的代码需要做进一步修改方可使用鸿蒙系统使用的GCc编译器,具体修改内容会在代码修改中做详述。

02

代码编写与修改

代码修改主要有如下几点。

1、 单个汉字字符机构体修改:

修改汉字取模软件生成的代码,能够通过鸿蒙交叉编译器,其中结构体 stru

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值