找回密码
 注册
搜索
查看: 6583|回复: 76

[资料] LCD接口说明.doc

[复制链接]
发表于 2009-3-6 17:26:58 | 显示全部楼层 |阅读模式
【文件名】:0936@52RD_LCD接口说明.doc
【格 式】:doc
【大 小】:175K
【简 介】:   
【目 录】:   


发表于 2009-3-7 10:03:29 | 显示全部楼层
LCD 接口使用说明



版本: 1.0.0

SW-BASE-UG-0026

2004-06-09

D2











www.spreadtrum.com




修订历史
版本        日期        作 者        审 核        说 明
1.0.0        2004-06-09        Jim.zhang                Draft
                               
                               
                               
                               

























重要声明

版权声明

版权所有 © 2004, 展讯通信有限公司,保留所有权利。

商标声明
展讯通信有限公司和展讯通信有限公司的产品是展讯通信有限公司专有。在提及其他公司及其产品时将使用各自公司所拥有的商标,这种使用的目的仅限于引用。

不作保证声明
展讯通信有限公司不对此文档中的任何内容作任何明示或暗示的陈述或保证,而且不对特定目的的适销性及适用性或者任何间接、特殊或连带的损失承担任何责任。

保密声明
本文档(包括任何附件)包含的信息是保密信息。接收人了解其获得的本文档是保密的,除用于规定的目的外不得用于任何目的,也不得将本文档泄露给任何第三方。















































目           录
1        介绍        5
1.1        范围        5
1.2        参考文档        5
1.3        缩写和定义        5
2        概述        6
2.1        文件组织        6
2.2        LCD屏幕坐标        6
2.3        LCD操作概述        6
3        接口函数说明        7
3.1        LCD硬件初始化        7
3.2        关闭LCD        7
3.3        获取LCD基本信息        7
3.4        刷新LCD        8
3.5        LCD全屏刷新        9
3.6        进入/退出睡眠        9
3.7        调节LCD的对比度        10
4        附录        11
4.1        数据结构        11
4.1.1        LCD信息结构 LCD_INFO_T        11
4.1.2        LCD ID类型  LCD_ID_E        11
4.1.3        LCD错误类型 ERR_LCD_E        12

1        介绍
1.1        范围
本文描述LCD驱动软件的向上层如MMI所提供的API,作为应用程序设计人员必须的参考文档。
1.2         参考文档

1.3        缩写和定义
LCD        Liquid Crystal Display
MMI        Man-Machine Interface

2        概述
2.1        文件组织
lcd_api.h
该文件定义了所有的LCD接口函数,上层调用LCD提供的函数时需要包含该文件。
2.2        LCD屏幕坐标
LCD屏幕的坐标为二维坐标系统,设LCD宽为LCD-WIDTH,高为LCD-HEIGHT,则LCD屏幕的坐上交坐标表示为(0,0),右下角坐标表示为(LCD-WIDTH – 1,  LCD-HEIGHT – 1)。
2.3        LCD操作概述
系统为每个LCD都分配了一个BUFFER,BUFFER中用于存放LCD上所有点颜色值,该BUFFER大小对应着LCD的屏幕大小,LCD上的每个PIXEL对应着BUFFER中的一个元素。如果LCD的PIXEL的颜色为8BITS,则BUFFER的每个元素也同样为8BITS;如果LCD的PXIEL的颜色为12BITS,则BUFFER的每个元素为16BITS;如果LCD的每个PIXEL的颜色为16BITS则BUFFER中每个元素为16BITS;如果LCD每个PIXEL的颜色为24BITS,则BUFFER中每个元素为24BITS;如果LCD每个PIXEL的颜色为32BITS,则BUFFER中每个元素也同样为32BITS。
设LCD上一点坐标为(x,y),BUFFER头指针为buffer_ptr,则(x,y)对应与BUFFER中的位置为:buffer_ptr + y*LCD-WIDTH + x 。
上层如果要对LCD进行操作,首先需要获取该BUFFER的头指针,参考LCD_GetInfo()函数,然后对该BUFFER写入颜色值,最后调用LCD的刷新函数(LCD_InvalidateRect 、LCD_Invalidate)即可。
另外,控制LCD进入睡眠模式可以降低系统的功耗。
3        接口函数说明
3.1        LCD硬件初始化
LCD_Init
初始化LCD硬件,如果有多个LCD,则同时被该函数初始化。成功调用该函数后即可实现对LCD的操作。此后,打开LCD的背景灯则可看见LCD屏幕上的内容。
PUBLIC ERR_LCD_E  LCD_Init(void);
参数:

返回值:
ERR_LCD_NONE为初始化成功,其它值为错误代码。
参考:
LCD_Close
举例:

3.2        关闭LCD
LCD_Close
关闭LCD,当关机时会调用此函数。当有多个LCD设备时,该函数将关闭所有的LCD。
PUBLIC void LCD_Close(void);
参数:

返回值:

参考:
LCD_Init
举例:

3.3        获取LCD基本信息
LCD_ GetInfo
获取LCD的基本信息。具体参考LCD_INFO_T的定义。上层调用此函数,可获取LCD的信息,如bits-per-pixel以及LCD的BUFFER指针,从而可以实现对LCD的直接操作。
PUBLIC  ERR_LCD_E  LCD_GetInfo(
LCD_ID_E      lcd_id,                                                                                        LCD_INFO_T  *lcd_info_ptr                                                                                 );
参数:
[in]lcd_id
欲操作LCD的ID,参考LCD_ID_E。
[out]lcd_inf_ptr
lcd的信息结构指针。
返回值:
ERR_LCD_NONE为调用成功,其它值为错误代码。
参考:

举例:
对点主屏上点(x,y)写入颜色0X0F0F的实现如下:
(假定lcd_info_ptr-> bits_per_pixel = 16)

LCD_GetInfo(MAIN_LCD_ID, lcd_info_ptr);

uint16 *buf_ptr = (uint16 *)lcd_info_ptr-> lcdbuff_ptr;
uint16  lcd_width = lcd_info_ptr->lcd_width;
uint16  lcd_height=lcd_info_ptr->lcd_height;

*(uint16 *)(buf_ptr + y*lcd_width + x) = 0x0f0f;
然后根据需要调用LCD_Invalidate或者LCD_InvalidateRect函数刷新LCD有关区域。
3.4        刷新LCD
LCD_InvalidateRect
刷新LCD 的某一矩形区域。该函数将LCD BUFFER中的颜色值写入到指定的区域中,如果该指定的区域超出了指定LCD的范围,则该函数将只刷新该指定区域与LCD区域的重叠部分,即LCD范围外的区域无效。
PUBLIC ERR_LCD_E   LCD_InvalidateRect(
LCD_ID_E lcd_id,
        uint16 left,       
        uint16 top,        
        uint16 right,
        uint16 bottom
        );
参数:
[in]lcd_id
LCD ID
[in]left
矩形区域的左上角x坐标
        [in]top
矩形区域的左上角y坐标
[in]right
矩形区域的右下角x坐标
[in]bottom
矩形区域的右下角y坐标
返回值:
ERR_LCD_NONE为操作成功,其他值为操作失败。
参考:
LCD_Invalidate
举例:

3.5        LCD全屏刷新
LCD_Invalidate
对指定LCD的整个屏幕进行刷新。
PUBLIC ERR_LCD_E  LCD_Invalidate(
LCD_ID_E  lcd_id       
);
参数:
[in]lcd_id
LCD ID
返回值:
ERR_LCD_NONE为操作成功,其他值为操作失败。
参考:
LCD_InvalidateRect
举例:

3.6        进入/退出睡眠
...
点评回复

使用道具 举报

发表于 2009-3-17 20:47:40 | 显示全部楼层
好贵,RD币太少…………。
点评回复

使用道具 举报

发表于 2009-3-21 19:04:49 | 显示全部楼层
楼主好贵啊
点评回复

使用道具 举报

发表于 2009-3-22 22:39:34 | 显示全部楼层
好贵,RD币太少
点评回复

使用道具 举报

发表于 2009-4-21 15:12:16 | 显示全部楼层
好贵,RD币太少
点评回复

使用道具 举报

发表于 2009-4-21 15:59:07 | 显示全部楼层
好贵,RD币太少
点评回复

使用道具 举报

发表于 2009-4-22 00:44:02 | 显示全部楼层
太缺钱了吧?咋没免费的呢?
点评回复

使用道具 举报

发表于 2009-4-26 16:16:11 | 显示全部楼层
太缺钱了吧?咋没免费的呢?
点评回复

使用道具 举报

发表于 2009-4-26 16:17:16 | 显示全部楼层
太缺钱了吧?咋没免费的呢?
点评回复

使用道具 举报

发表于 2009-5-21 12:44:49 | 显示全部楼层
太缺钱了吧?咋没免费的呢?
点评回复

使用道具 举报

发表于 2009-5-26 13:39:36 | 显示全部楼层
银子 没有了[em05][em05][em05][em05]
点评回复

使用道具 举报

发表于 2009-5-27 09:52:03 | 显示全部楼层
是贵了[em10]
点评回复

使用道具 举报

发表于 2009-5-27 15:24:42 | 显示全部楼层
贵了
点评回复

使用道具 举报

发表于 2009-6-3 14:51:55 | 显示全部楼层
thank you!
点评回复

使用道具 举报

发表于 2009-7-18 01:59:43 | 显示全部楼层
打劫啊!这么贵
点评回复

使用道具 举报

发表于 2009-7-21 09:51:32 | 显示全部楼层
好贵啊!
点评回复

使用道具 举报

发表于 2009-7-23 08:41:16 | 显示全部楼层
有用,,,看一下了解一下,谢谢!
点评回复

使用道具 举报

发表于 2009-7-26 04:45:37 | 显示全部楼层
没有好人来搞一下[em05][em05][em05][em05]
点评回复

使用道具 举报

发表于 2009-8-18 10:18:46 | 显示全部楼层
好贵哦!
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2025-1-31 11:27 , Processed in 0.110051 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表