2011-06-25 19:20:47
驱动自己写完了, 应用函数自己就不写了, 找了一点代码参考, 移植并修改了一下, 配合之前的定义的接口文档, 我贴出部分代码. 目录:
一, 开发环境... 1
二, 底层函数... 1
三, 应用接口函数... 3
四, 部分代码参考... 5
一, 开发环境
硬件: 开发板 TQ2440,LCM 为 2.4 寸 QVGA TFT 屏, IC=ili9325.
软件: IAR ARM 5.5.
二, 底层函数
1,LCD_Init(LCD 初始化)
函数原型:
Void LCD_Init(void);
函数功能: 初始化 LCD 寄存器.
函数参数: 无
2,LCD_Display(LCD 视频输出开关)
函数原型:
Void LCD_Display (U8 state);
函数功能: 打开或关闭视频输出.
函数参数: state 是代表视频打开关闭状态, 1 为打开, 0 为关闭.
3,LCD_Write(向 LCD 发出指令并写数据)
函数原型:
LCD_Write(U16 index,U16 data);
函数功能: 向 LCD 寄存器写数据
函数参数: index 是代表 LCD 寄存器值
Data 是代表写入的数据值
4,LCD_Read(向 LCD 发出指令并读数据)
函数原型:
U16 LCD_ Read (U16 index,U16 data);
函数功能: 向 LCD 寄存器读数据值. 返回读出的数值.
函数参数: index 是代表 LCD 寄存器值
Data 是代表读出的数据值
5,LCD_Write_COM (向 LCD 发出指令)
函数原型:
void LCD_Write_COM( U16 index)
函数功能: 向 LCD 寄存器写命令
函数参数: index 是代表 LCD 寄存器值
6,LCD_Write_DATA(向 LCD 写数据)
函数原型:
void LCD_Write_DATA(U16 data)
函数功能: 向 LCD 寄存器写数据
函数参数: data 是代表 LCD 数据值
三, 应用接口函数
1,LCD_BrushScreen(LCD 刷屏)
函数原型:
Void LCD_BrushScreen (U16 color);
函数功能: 整屏显示 1 种颜色
函数参数: color 代表需要显示的颜色
2,LCD_DrawPixel (LCD 显示点)
函数原型:
Void LCD_DrawPixel (U8 x,U16 y,U16 color);
函数功能: LCD 显示一个带颜色的像素点.
函数参数: x 代表显示的横坐标值. 范围 (0-239)
y 代表显示的纵坐标值. 范围 (0-319)
color 代表需要显示的颜色
3,LCD_DrawRectangle (LCD 画矩形)
函数原型:
Void LCD_DrawRectangle (U8 x1,U16 y1, U8 x2, U16 y2, U16 color);
函数功能: LCD 显示一个矩形, 填充色彩.
函数参数: x1 代表显示的起始的横坐标值. 范围 (0-239)
y1 代表显示的起始的纵坐标值. 范围 (0-319)
x2 代表显示的结束的横坐标值. 范围 (0-239)
y2 代表显示的结束的纵坐标值. 范围 (0-319)
color 代表需要显示的颜色
4,LCD_DrawString (LCD 显示文字)
函数原型:
Void LCD_DrawString (U8 x,U16 y, char *pString, U16 color);
函数功能: LCD 显示文字信息.
函数参数: x 代表显示的起始的横坐标值. 范围 (0-239)
y 代表显示的起始的纵坐标值. 范围 (0-319)
pString 代表要显示的文字地址指针
color 代表需要显示的文字颜色
5,LCD_DrawChar (LCD 显示一个字符)
函数原型:
Void LCD_DrawChar (U8 x,U16 y, U8 c, U16 color);
函数功能: LCD 显示文字信息.
函数参数: x 代表显示的起始的横坐标值. 范围 (0-239)
y 代表显示的起始的纵坐标值. 范围 (0-319)
c 代表要显示的文字地址指针
color 代表需要显示的文字颜色
6,LCD_DrawPicture (LCD 显示图片)
函数原型:
Void LCD_DrawPicture (U8 x1,U16 y1, U8 x2, U16 y2, const U8 *pImage);
函数功能: LCD 显示一幅图片.
函数参数: x1 代表显示的起始的横坐标值. 范围 (0-239)
y1 代表显示的起始的纵坐标值. 范围 (0-319)
x2 代表显示的结束的横坐标值. 范围 (0-239)
y2 代表显示的结束的纵坐标值. 范围 (0-319)
pImage 代表图片的地址指针
四, 部分代码参考
- void test_LCDDemo(void)
- {
- // 配置引脚初始化
- PIO_Configure(pinsLcdctrl, PIO_LISTSIZE(pinsLcdctrl));
- rGPDCON=0x55555555;
- rGPCUP=1;
- //LCD 复位
- RST_H();
- Delayms(5);
- RST_L();
- Delayms(5);
- RST_H();
- Delayms(5);
- //LCD 识别
- while(LCD_Read(0)!=0x9325)
- {
- printf("Read id error!");
- }
- //LCD 初始化驱动
- LCD_Init();
- // 应用
- // 填充屏
- LCD_BrushScreen(COLOR_WHITE);
- // 画点
- LCD_DrawPixel(30,30,COLOR_RED);
- // 画矩形
- LCD_DrawRectangle(30,50,20,10,COLOR_GREEN);
- // 显示文字
- LCD_DrawString(30,70,"Hello world!",COLOR_BLUE);
- // 显示图像
- LCD_DrawPicture(30,100,191,199,gImage_apple);
- while(1);
- }
- /***********Driver Output Control (R01h)******************/
- #define R01h_SS 0x1<<8 //Select the shift direction of outputs from the source driver
- #define R01h_SS_0 0x0<<8 //from S1 to S720
- #define R01h_SS_1 0x1<<8 //from S720 to S1
- #define R01h_SM 0x1<<10 //Sets the gate driver pin arrangement with GS bit
- #define R01h_SM_0 0x0<<10 //
- #define R01h_SM_1 0x1<<10 //
- /***********LCD Driving Wave Control (R02h)******************/
- #define R02h_EOR 0x1<<8 //EOR = 1 and B/C=1 to set the line inversion
- #define R02h_EOR_0 0x0<<8 //
- #define R02h_EOR_1 0x1<<8 //EOR = 1 and B/C=1 to set the line inversion
- #define R02h_B_C 0x1<<9 //Frame/Line inversion
- #define R02h_B_C_0 0x0<<9 //Frame/Field inversion
- #define R02h_B_C_1 0x1<<9 //Line inversion
- ......
- /* 硬件引脚连接
- 2440 接口 Pin 2440 socketLCDPin LCD
- 1=======VCC-3.3V=======1=======VCC-3.3V
- 29=======GND=======2=======GND
- 31=======GPE15=======3=======CS
- 32=======GPE14=======4=======RS
- 33=======GPC4=======5=======WR
- 34=======GPC3=======6=======RD
- 35=======GPC2======= 暂时不连 =======RST
- 19=======GPD7=======8=======DB15
- 18=======GPD6=======9=======DB14
- 17=======GPD5=======10=======DB13
- 16=======GPD4=======11=======DB12
- 15=======GPD3=======12=======DB11
- 14=======GPD2=======13=======DB10
- 13=======GPD1=======14=======DB9
- 12=======GPD0=======15=======DB8
- */
来源: http://www.bubuko.com/infodetail-3037485.html