数码相框_在LCD上显示英文字母、汉字的点阵显示(2)

数码相框_在LCD上显示英文字母、汉字的点阵显示

 

主要内容:

写应用程序,使LCD显示汉字和字符

 

原理:

在SDRAM内存里划出一块空间为FrameBuffer显存,LCD控制器会从FrameBuffer里取出若干节的数据(像素),发给LCD。

 

ASCII码字库文件使用

在内核里面应该有英文字母的点阵,在内核中搜索font,找到内核有一个font_8x16.c文件(位于drivers/video/console

如下图所示,找到8*16的点阵存在fontdata_8x16[]数组里:

我们以0x41(A)为例子,找到该点阵信息为:

可以看到一个ASCII代表了16字节,后面我们直接将fontdata_8x16[]数组拷贝到应用程序里,用来显示ASCII

 

 

HZK16汉字库文件使用

(1)HZK16描述

HZK16是按分区表排列的点阵文件,由于每个汉字是2个字节,每个字节的点阵是8*16

所以HZK16里的每个汉字点阵大小:2*8*16=32字节

(2)然后还要将编码转为点阵码。

 

 

LCD设备fb0的file_operations是fb_fops(位于fbmem.c)

fb_fops的write成员是fb_write()函数

发现write()函数直接是对显存地址写数据,所以使用echo "hello" > /dev/fb0时会直接出现乱码(没有点阵信息)

而ioctl成员是do_fb_ioctl()函数,我们需要通过ioctl()获取LCD驱动的数据:

FBIOGET_VSCREENIN

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值