e-Paper 显示中文字符
微雪电子微雪电子墨水屏自推出以来经常有客户问到如何显示中文,今天特意写一个教程展示如果显示中文。字符显示显示实际上也是图片的显示,一个字符就是一张很小的图片,字符串显示,就是有一个个字符的图片拼接在一起显示一个字符。
英文字符显示原理
废话少说,在显示中文之前让我们来了解一下ASCII码是如何显示的。下面以2.13inch e-Paper HAT的STM32程序为例讲解。
要显示字符首先要有字体,示例程序中Fonts目录下的文件就是对应不同的字体,打开文件可以到看一堆数据。
每种字体都有一个结构体分别存储字体的信息。结构体包括数组指针,字体宽度,字体高度。
以上字体是在stm32官方的示例程序复制过来的。是ASCII的字体,下来我们来讲解一下我们怎么制作字体。下面图片是Font8 字体"A"字符的字模,我们可以用字模软件来得到A字符的数据。
字体数据就是用字模提取软件,将字模按照横向取模或者纵向取模,将逐个像素点用数组表示。要显示“A”字符就到“A”字符的数据然后将字模逐点显示出来就行了
这里需要注意一点就是红框这里,字体数组是按照ASCII的顺序存储的,第一个字符就是空格" ",而每个字符的数据大小是相同的。所以将A的ASCII码减去空格键的ASCII 码,这样就可以到字符"A"的数据开始位置。
字符串显示就是将一个个字符显示出来。
字符集
好了,我们已经大概知道怎么显示英文字符了。在显示中文之前还需要了解字符集。什么是字符集呢?字符集就是所有字符的集合,ASCII码就是一个字符集,ASCII只有0~127个字符。用一个字节表示。只能显示英文,不能显示中文。
所以要显示中文就必须使用中文的字符集。中文比较常用的字符集是GB2312 ,GBK。GB2312是对ASCII 的中文扩展。兼容ASCII。而GBK是GB2312的扩展,兼容GB2312,能显示更多的中文。有兴趣的同学可以网上一下这两个字符集的定义,如果要显示中文我们只需要知道。ASCII码用一个字节表示,中文用两个字节表示。第一个字节小于127的字符就是ASCII码,占一个字节。第一个字节大于127的字符就是中文,由两个字节连在一起表示一个汉字。由于中文需要两个字节,首先要将keil 设置为GB2312编码方式.点击Edit ->Configuration 打开配置窗口,选择GB2312编码。
c51中字符串函数制作中文字符
要显示中文字符,我们首先要制作中文字体。打开字体取模软件,在“参数设置”中点击“字体输入区字体选择”选择对应的字体和大小。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论