首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于AT91RM9200的LCD驱动程序设计
来源:本站整理  作者:佚名  2009-04-01 09:39:31




void plateform_init_video(void) {
       AT91_SYS->PIOC_PER |= 0x00004000; //对LCD加3.2伏的背光电压[5]
    AT91_SYS->PIOC_OER |= 0x00004000;
    AT91_SYS->PIOC_SODR |= 0x00004000; …}
本文系统采用的12.1寸TFT彩色LCD最佳分辨率是800×600,但通过前面对结构Struct fb_var_screeninfo的赋值并不能真正设定其分辨率,因为结构Struct fb_var_screeninfo的值只是作为一个显示记录来用,必须通过设定寄存器的值,才能达到需要的分辨率。其中最主要的几个寄存器及其代表意义如图1-2所示:

本系统通过一个数组对寄存器进行赋值,在初始化函数中利用s1dReg和s1dValue这两个实参写入:
static S1D_REGS aS1DRegs[] = {
…//前一个值为寄存器标识,后一个为写入寄存器的值[6]
{0x0032,0x63},   // 分辨率水平象素 =) ((032h)bit6-0)+ 1) × 8为800
{0x0038,0x57},   // 分辨率垂直象素0 = (038h)bit7-0 +分辨率垂直象素1为600
{0x0039,0x02},   // 分辨率垂直象素1 = ((039h)bit1-0) + 1
{0x0042,0x00},   // (042h)bit7-0帧缓冲区开始地址
{0x0043,0x00},   // (043h)bit7-0
{0x0044,0x00},   // (044h)bit3-0
{0x0046,0x20},   // (046h)bit7-0帧缓冲区宽度偏移量  
{0x0047,0x03},   // (047h)bit2-0
{0x0048,0x00},   // lcd显示图像的起始位置地址0x00
}
至此,彩色LCD的驱动程序框架基本上已经完成了,通过5.1小节中已实现的成员函数调用就可以对帧缓冲区的显示内容进行控制调试,步骤是把编写好驱动程序用arm-linux-gcc进行交叉编译,然后通过串口在目标板上运行insmod/remod命令动态加载/卸载来调试。若程序已调试好就可以把它编译到Linux内核,烧录进目标板的flash就可以完成LCD的显示了。

6 结束语
文中介绍了Linux操作系统下的LCD驱动程序基本原理和框架,以及帧缓冲设备的作用。以基于AT91RM9200芯片的开发板和SLD13506控制器为例,编写了一个典型的帧缓冲设备驱动程序。LCD显示器的型号虽然很多,但其驱动的编写基本上是类似的,可以通过本文介绍的步骤对其它彩色LCD进行编写。

本文作者创新点:本文是介绍了基于ARM9技术的芯片的LCD显示屏驱动控制程序,给出实际项目中已实现了的操作,对同类芯片中的LCD驱动或其他硬件驱动有很好的参考价值。

上一页  [1] [2] [3] [4]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:104,996.10000 毫秒