本文主要是介绍基于嵌入式Linux的LCD液晶点阵显示的基本实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文以嵌入式Linux为板载系统。写一个测试LCD液晶点阵的小例子,在这个小例子当中主要实现液晶点阵的中文和英文实现。
一、前期准备工作
1、基本开发环境
PC机 : Ubuntu9.10
gcc版本 : gcc version 4.3.2
板载系统 :Linux(kernel version Linux-3.4.10)
2、字体文件的准备
因为本测试程序要实现液晶点阵的中英文两种实现方式,所以需要两种点阵字体。
英文字体来自Linux内核中的drivers/video/console/font_8X16.c的fontdata_8X16这个数组当中。
中文字体来自于网络下载的字体文件HZK16,可以从这个地址下载得到。
二、打开LCD驱动设备文件和HZK16点阵字体文件
在打开设备文件之前,定义一些全局变量方便测试程序的编写,具体如下:
/* 一些全局变量的定义 */
int fd_fb; // LCD设备驱动的文件句柄
struct fb_var_screeninfo var; // 定义LCD的可变参数
struct fb_fix_screeninfo fix; // 定义LCD的固定参数
int screen_size; // 表示整个屏幕所占显存的大小
int line_width; // 表示屏幕每一行所占显存的大小
int pixel_width; // 表示每个像素点所占显存的大小
char *fbmem; // 表示显存的起始地址int fd_hzk16; // HZK16汉字库的文件句柄
struct stat hzk16_stat; // 描述HZK16这个文件的状态信息
char *hzk16mem; // HZK16这个汉字库映射到内存的起始地址
1、打开LCD驱动设备文件
打开LCD设备驱动来获取液晶的可变参数,固定参数,以及将液晶显存映射到用户空间,具体实现如下所示:
/* 以可读可写方式打开LCD液晶驱动 */fd_fb = open("/dev/fb0", O_RDWR);if(fd_fb == -1){printf("can't op
这篇关于基于嵌入式Linux的LCD液晶点阵显示的基本实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!