TQ2440_LCD 驱动编写(裸机)一.前言二.驱动编写三.代码清单1.前言写本文的目的,旨在"授之以渔,而非授之以鱼".关于 2440 LCD 的代码,网上一搜一大堆.当然写得都差不多.这里我是想阐述如何去写驱动程序,如何对照 2440 的手册,对照 LCD的数据手册来配置相关的寄存器的值.(1)在写驱动(裸机程序)之前,我们必须准备好几样东西:①S3C2440数据手册②TQ043TSCM_V0.1_40P(天嵌 4.3寸屏手册)③TQ2440_V2核心板原理图④TQ2440底板原理图2 .驱动编写驱动的编写大致分为三个部分:(1)配置 GPIO用于 LCD即:LCD_GPIOInit()a.配置 GPIO用于 LCD比较简单,阅读 TQ2 440_V2核心板原理图,找出 LCD所需配置的管脚图 1:这是 TQ2 440的核心板原理图的一部分b.从 S3C2 440手册中搜索 GPIO管脚所在位的寄存器.这个想必不用多说.c.对寄存器写入相应的控制字GPCCON|=0xaaaa02 a9;//VD[7]~VD[0]\VM\VFRAME\VLINE\VCLK\LENDGPCUP=0x0;//pullupGPDCON|=0xaaaaaaaa;//VD[2 3]~VD[8]willbeenableGPDUP=0x0;//pullupGPGCON|=(3<<8);//LCD_PWRDNenableGPGUP=0x7ff;//pulldownd.完成 GPIO的设置查阅 S3C2 440的手册,根据自己的需求,对相应的寄存器写入控制字.(2)设置LCD控制器a.明确概念说到这里,也许有很多人就觉得有点难了.尤其是初学者.为什么会觉得难呢?是因为有"很多"东西需要去设置.如果脑袋里没有任何概念就去设置LCD控制器当然会觉得很难.这样我们在配置LCD控制器之前,我们来明确几个概念.图2:这是天嵌4.3寸屏数据手册①帧频率(FrameRate).范围:60~90Hz我们都知道图形其实也是由点构成的,形象的比喻一下:"电子枪"通过"描点"来实现图形显示.而图形的基本单位,我们称之为"帧".那么电子枪完成一帧所需要的时间,就是我们关心的问题了.它的倒数便是我们的"帧频率"FrameRate.而 FrameRate与寄存器的设置有着密不可分的联系,看下芯片手册就能够明白大概.下面这段内容对我们很重要,尤其是对后面寄存器的配置.(最后可以通过下面公式来检验 FrameRate是否超出60~90HZ)图3:这是S3C2440数据手册②点频率(DotDataClock/DCLK).范围:9.0~15MHzDotDataClock,顾名思义即是每一个点所需要的花费的时间.图4:这是S3C2440数据手册从图4可以看出,我们需要设置的东西,图中的 VCLK即是DCLK.这个需要我们自己来设置,取值在9~15MHZ均可.HCLK是在系统时钟设置的时候必须设置好的.是已知的.所以这里我们要求的是CLKVAL的值,然后把计算出来的值写入寄存器(LCDCON1中的CLKVAL[17:...