- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式开发板显示汉字
最近一直在做PXA270开发板做实验。。现将显示汉字的程序,整理一下。首先有汉字库这个东西,这个东西类似一个二维数组,有94行,94列。行号叫区号,列号叫位号。这样可以有94x94个汉字。每一个汉字可以由区号+位号来得到。因为94化成二进制数要7位,所以要表示一个汉字就得14位。这样的编码就叫做区位码。所以区位码是14位。然而大家都知道一个汉字是由两个字节表示的。是16位。多了两位。由16位表示编码方式叫内码。内码与区位码的换算方式如下:??????? 区号=内码第一个字节-A1H??????? 位号=内码第二个字节-A1H那么汉字的点阵的起始位置=(区号x94+位号)x点阵的字节数有了上面的知识,来看开发板显示汉字的实例1:下载汉字库hzk162:安装ascii.lib库3:源码如下#include unistd.h#include stdlib.h#include stdio.h#include fcntl.h#include sys/stat.h#include fcntl.h#include unistd.h#include sys/mman.h#include string.h#include linux/fb.h#include linux/kd.h#include sys/mman.h#include sys/types.h#include sys/stat.h#include termios.h#include sys/time.h#include sys/ioctl.h#include ascii.lib#define SYS_BLACK??0define SYS_WHITE??0xfffffffffile *hzkfile=null;unsigned char * chsTxt = 青梅不爱竹马;short x,y;short i;unsigned char bufferTxt[2];typedef unsigned long?ColorType;ColorType color = SYS_WHITE;void DrawCharCHS(int x, int y, unsigned char c[2], ColorType color);void fb_Text_16x16(int x, int y, unsigned char * dotCodes, ColorType color);void fb_PutPixel(short x, short y, ColorType color/*, int xorm */);void main(){?hzkFile = fopen(./hz16, rb);?x = 10, y = 40;?for (i = 0; i strlen(chsTxt); i += 2)?{??bufferTxt[0] = chsTxt[i];??bufferTxt[1] = chsTxt[i + 1];??DrawCharCHS(x, y, bufferTxt, color);??x += 16;?}?fclose(hzkFile);}void DrawCharCHS(int x, int y, unsigned char c[2], ColorType color){?unsigned char codes[32];?short i;?unsigned char ch, cl;?unsigned long offset;?if (hzkFile == NULL)?{??printf(No Chinese Character Library opened.\n);??exit(1);?}?ch = c[0];?cl = c[1];?offset = ((ch - 0xa1) * 94L + (cl - 0xa1)) * 32L;?fseek(hzkFile, offset, SEEK_SET);//通过区位号找到汉字?fread(codes, 32, 1, hzkFile);??fb_Text_16x16(x, y, codes, color);}void fb_Text_16x16(int x, int y, unsigned char * dotCodes, ColorType color){?int i, j, k;?if (x 0 || x = SCREEN_WIDTH ||??y 0 || y = SCREEN_HEIGHT)?{#ifdef ERR_DEBUG??printf(DEBUG_INFO: Pixel out of screen range.\n);??printf(DEBUG_INFO: x = %d, y = %d\n, x, y);#e
您可能关注的文档
- 室分优化场景策略分析案例.pptx
- 09第九单元(三维参数化编程).ppt
- 3ds max-电子教案.ppt
- .net课程教学.pptx
- Access课程第9章.ppt
- CAD学习 第5章 编辑对象.ppt
- AutoCAD 2009 中文版 实例教程 9章.pptx
- cad教学课程.ppt
- ch03 数组和向量.ppt
- Excel在财务管理中的应用01.ppt
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
文档评论(0)