e-Paper显示中文字符.PDFVIP

  • 10
  • 0
  • 约4.66千字
  • 约 15页
  • 2019-12-28 发布于天津
  • 举报
e-Paper 中字符显示 e-Paper 显示中文字符 微雪电子微雪电子墨水屏自推出以来经常有客户问到如何显示中文,今天特意写一个教 程展示如果显示中文。字符显示显示实际上也是图片的显示,一个字符就是一张很小的图片, 字符串显示,就是有一个个字符的图片拼接在一起显示一个字符。 英文字符显示原理 废话少说,在显示中文之前让我们来了解一下 ASCII 码是如何显示的。下面以 2.13inch e-Paper HAT 的 STM32 程序为例讲解。 要显示字符首先要有字体,示例程序中 Fonts 目录下的文件就是对应不同的字体,打 开文件可以到看一堆数据。 每种字体都有一个结构体分别存储字体的信息。结构体包括数组指针,字体宽度,字体 高度。 1 / 15 e-Paper 中字符显示 以上字体是在 stm32 官方的示例程序复制过来的。是 ASCII 的字体,下来我们来讲解 一下我们怎么制作字体。下面图片是 Font8 字体A字符的字模,我们可以用字模软件来得 到 A 字符的数据。 字体数据就是用字模提取软件,将字模按照横向取模或者纵向取模,将逐个像素点用数 组表示。要显示“A”字符就找到 “A”字符的数据然后将字模逐点显示出来就行了 2 / 15 e-Paper 中字符显示 这里需要注意一点就是红框这里,字体数组是按照 ASCII 的顺序存储的,第一个字符就 是空格 ,而每个字符的数据大小是相同的。所以将 A 的 ASCII 码减去空格键的 ASCII 码,这样就可以找到字符A的数据开始位置。 字符串显示就是将一个个字符显示出来。 字符集 好了,我们已经大概知道怎么显示英文字符了。在显示中文之前还需要了解字符集。 什么是字符集呢?字符集就是所有字符的集合,ASCII 码就是一个字符集,ASCII 只有 0~127 个字符。用一个字节表示。只能显示英文,不能显示中文。 3 / 15 e-Paper 中字符显示 所以要显示中文就必须使用中文的字符集。中文比较常用的字符集是 GB2312 ,GBK。 GB2312 是对 ASCII 的中文扩展。兼容 ASCII。而 GBK 是 GB2312 的扩展,兼容 GB2312, 能显示更多的中文。有兴趣的同学可以网上一下这两个字符集的定义,如果要显示中文我们 只需要知道。ASCII 码用一个字节表示,中文用两个字节表示。第一个字节小于 127 的字符 就是 ASCII 码,占一个字节。第一个字节大于 127 的字符就是中文,由两个字节连在一起 表示一个汉字。由于中文需要两个字节,首先要将 keil 设置为 GB2312 编码方式.点击 Edit -Configuration 打开配置窗口,选择 GB2312 编码。 4 / 15 e-Paper 中字符显示 制作中文字符 要显示中文字符,我们首先要制作中文字体。打开字体取模软件,在“参数设置”中点 击“字体输入区字体选择”选择对应的字体和大小。 5 / 15 e-Paper 中字符显示 其他选项可以设置取模方式。 在文字输入区输入要取模的汉字,按 Ctrl + Enter 结束输入 在“取模方式”中选择 “C51 格式” 就可以得到字模数据。 6 / 15 e-Paper 中字符显示 要将中文字库添加到程序中,首先要用一个结构体存储字体信息。 和 ASCII 码 sFONT 结构体类似,中文的结构体为 cFONT,包含有字摸数据指针,字 符个数,字体宽度,字体高度,还有一个 ASCII 字体宽度。而中文数据是 CH_CN 结构体数 组构成,每个字符包含 “汉字内码索引”和 “点阵码数据”。索引是为了找到这个字符的数 据,点阵码数据就是要显示的数据,这个是字模提取软件得到的。

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档