S3C6410裸机驱动5'TFT LCD


由于OK6410自带的LCD分辨率太低,自己在淘宝上淘了一个5'的TFT LCD,分辨率为800*480

今天上午终于驱动起来了,遗憾的是OK6410的转接板竟然将部分RGB数据线接在一起,导致只能支持16BIT的颜色.


下面是我的液晶屏的时序资料



//代码
//TFT_LCD.C
/*************************************************************************************************************
* 文件名:TFT_LCD.c
* 功能:S3C6410 TFT_LCD底层驱动函数
* 作者:陈鹏
* 创建时间:2012年3月11日15:46
* 最后修改时间:2012年5月6日
* 详细:TFT_LCD初始化以及相关绘图函数
*************************************************************************************************************/
#include"s3c6410_system.h"
#include"tft_lcd.h"
#include"s3c6410_map.h"
#include "ASCII.H"


//显存分辨率
#define LCD_XSIZE800//水平分辨率
#define LCD_YSIZE 480//垂直分辨率


//定义显存
volatile static u16 LCD_BUFFER[LCD_YSIZE][LCD_XSIZE];
const u8 FONT_H[6] = {16,16,13,16,13,16};//对应的字体宽和高


//液晶相关参数 5'TFT 800*480
//时序控制
//括号里面的为LCD时序要求的值,但是实际需要调整
//只要调整LCD_VSPW和LCD_HSPW就可以了
#define LCD_VBPD29//VSBP-VSPW(32-3) 在帧开始处,垂直后沿是不活动行的数量,在垂直同步过程之后
#define LCD_VFPD13//VSFP(13)在帧末尾处,垂直前沿是不活动行的数量,在垂直同步过程之前。
#define LCD_VSPW4//VSPW(3)通过计算不活动行的数量,垂直同步脉冲宽度决定VSYNC 脉冲的高点品宽度。
#define LCD_HBPD40//HSBP-HSPW(88-48)水平后沿是HSYNC 下降沿和有效数据开始之间的VCLK 周期的数量。
#define LCD_HFPD40//HSFP(40)水平前沿是有效数据末端和HSYNC 上升沿之间的VCLK 周期的数量。
#define LCD_HSPW174//HSPW(48)通过计算不VCLK 的数量,水平同步脉冲宽度决定HSYNC 脉冲的高点品宽度
#define LCD_LINEVAL 480//垂直分辨率
#define LCD_HOZVAL800//水平分辨率
#defineLCD_BUF_SIZE(LCD_XSIZE*(LCD_YSIZE+1))//缓冲区大小,留有空闲,防止溢出
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 下一页

相关内容