OLED显示字符的大小与PCtoLCD2002生成字模

OLED显示字符的大小与PCtoLCD2002生成字模

首次尝试性写博客,如果错误或不足请大家指正

如有涉及相关版权的问题,联系我删除

前言:

为什么为了一个小小的OLED写这些乱七八糟的东西,还得花时间写,还要花时间看资料,直接调用代码就可以了
示例:OLED_ShowString(8,2,“Hello Word !”,16); //size:16/12 即可显示成功
引用我老师的一句话“学习,不是追求速度的,是追求质量的
我在学习,不是在工作

OLED显示字符大小
常用的0.96寸OLED显示屏分辨率是128*64,既每行有128个像素点,每列是64个像素点
参考屏幕的数据手册,列64个像素点分为8页,每一页是8个像素点,既每一页就是一个横条
我手上的是中景园电子的0.96OLED屏幕,4脚,采用IIC通信协议
0.96寸OLED分页示意图

问题的产生字符的大小与OLED显示之间的关系到底是什么
在屏幕店家给的参考例程之中,给了两个字符库
库一:8x16点阵----指行为8个像素点,列为16个像素点
库二:6x8 点阵----参考上面

通常汉字使用16x16的点阵,
实际上最多只能显示4行字体,64/16 = 4
而每一行最多只能显示8个字体,128/16 = 8
这里的显示限制在于OLED屏幕自己的分辨率,也就是像素的数量(这里时128x64个像素点)
(仔细观察第一行)
在这里插入图片描述
接下来看看字符与PCtoL2002生成字模的关系
首先,这里的长宽定义如下:
例,8x16字体指长为8,宽为16
在这里插入图片描述
首先介绍PCtoL2002的使用方法
首先,模式-》字符模式
在这里插入图片描述
然后,选项-》配置如下
注意点:红框内的点阵样式为看自己需求,而取模方向是根据你的屏幕驱动程序来选择的,可以自己修改看看不同的结果,探索他们之间的关系
在这里插入图片描述

输入想要取模的文字或字母-》生成字模,即可得到对应的字模数据,复制到自己的代码字符库即可
在这里插入图片描述
在这里我遇到过一个疑惑(菜鸟学习,大佬轻喷)
为什么都是16x16的自宽和字高,但是文字和字母做出来的数据量差了一倍?

在这里插入图片描述
在这里插入图片描述
个人理解:
实际上,这种区别在于字模软件对于英文字母的优化,英文字母相对汉字而言没有必要用16x16的区域来显示,取模软件会将英文字母优化成当前设定的字宽大小的一半,长缩小了一倍
此处的字宽设定为:16x16
对于英文字母生成后的大小:8x16
原因大致有以下几种,
美观性:减小字母的间距,紧凑
减小数据量:数据量能少一半,节省空间,也能提高传输速度
增加显示面积:更小的字宽,可以显示更多的字符
取模软件做了提示,但我并没有留意
在这里插入图片描述
还有一个问题,
为什么自己生成的字模数据和厂家给的代码里的不一样?
以字母“A”为例,8x16的字宽
自己生成的字模数据为:
{0x00,0x00,0xC0,0x78,0x78,0xC0,0x00,0x00,0x20,0x3E,0x07,0x02,0x02,0x07,0x3C,0x20},/“A”,0/
厂家给的字母“A”的字模数据为:{ 0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,}

**原因:**实际上这是因为字体而引起的,不同的字体产生的效果不一样,所生成的字模数据自然不同
我们这里选择的为:楷体,将楷体修改为宋体,两个字模的数据即可匹配,根据自己的需求设置即可

在这里插入图片描述
以上既是初次接触OLED显示的过程记录
随缘更新,不必关注

PCtoLCD2002使用教程 在正式版中,用户可生成自己需要的各种小字库,也可以生成自定义的国标一二级汉字库。 0.生成自定义的小字库: 0.使用PCTOLCD的各种调整功能调整出您需要的文字样式,如字体,字样(下划,倾斜,加 粗),大小(各种点阵大小的字体,可锁定点阵本身大小(如16*16),然后在这个固定的点阵大小 内调节文字的大小(例如在16*16的点阵中居中显示12*12大小的汉字) 1.将您需要的汉字和符号集中形成一个文本文件 2.使用“导入文本”的按钮 3.确认“生成二进制字库”被选中(建议选中"生成索引文件"原因后析) 4.点“开始生成”按钮,选择生成的字库文件名 5.然后耐心等待一段时间(与处理文本大小有关),在此期间建议不要动键盘和鼠标。 6.字库生成完毕. 1.生成国标一二级汉字库 0.使用PCTOLCD的各种调整功能调整出您需要的文字样式,如字体,字样(下划,倾斜,加 粗),大小(各种点阵大小的字体,可锁定点阵本身大小(如16*16),然后在这个固定的点阵大小 内调节文字的大小(例如在16*16的点阵中居中显示12*12大小的汉字). 1.使用“导入文本”的按钮 2.点右下角"生成国标汉字库"按钮. 3.选择字库文件名后单击确定 4.耐心等待一段时间后既得到生成的汉字库(时间视具体机器而定). 生成汉字库结构介绍 本软件使用的汉字库采用与HZK16相近似的结构,即按照输入汉字的顺序依次排列各汉字的 点阵数据,以生成16*16点阵汉字库举例介绍 16*16点阵汉字库 点阵大小16*16,所以每个汉字点阵数据占用32个字节.用户要使用生成16*16点阵小字库中 的点阵数据,可以在程序中采用如下算法: 0.在生成的字库汉字列表中得到该汉字的偏移量,也就是汉字的记录号HzNum 1.将其*32(HzNum*32)即可得出该汉字点阵在字库中的偏移地址. 3.以这个偏移地址为起点,连续读取文件中的32个字节,既为该汉字的点阵信息. 实际上,对于本软件生成16*16点阵的国标汉字库是采用区位码排列的,所以与标准的HZK16 结构是一样的,完全可以互换使用. 例如生成一个24*48点阵,楷体,倾斜的汉字库, 0.由于每个汉字占用24*48/8= 144个字节,所以用户可先读取生成的索引列表找到该汉 字的记录号. 1.将记录号*144即得到该汉字在字库中的偏移地址. 2.以这个偏移地址为起点,在字库文件中连续读取144个字节,即为该汉字的点阵信息. 对于其他点阵汉字库的使用方法,可以依次类推…… 当然,如果不选中“生成二进制字库”的复选框,生成的字库将是文本格式的字模数据,采 用那种方式完全取决于您的需要了 完美版新增生成英文点阵字库功能,使用方法同上。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值