1、展讯通信有限公司和展讯通信有限公司的产品是展讯通信有限公司专有。在提及其他公司及其产品时将使用各自公司所拥有的商标,这种使用的目的仅限于引用。不作保证声明 展讯通信有限公司不对此文档中的任何内容作任何明示或暗示的陈述或保证,而且不对特定目的的适销性及适用性或者任何间接、特殊或连带的损失承担任何责任。保密声明本文档(包括任何附件)包含的信息是保密信息。接收人了解其获得的本文档是保密的,除用于规定的目的外不得用于任何目的,也不得将本文档泄露给任何第三方。目 录1 介绍 51.1 范围 51.2 参考文档 51.3 缩写和定义 52 概述 62.1 文件组织 62.2 LCD屏幕坐标 62.3 LC
2、D操作概述 63 接口函数说明 73.1 LCD硬件初始化 73.2 关闭LCD 73.3 获取LCD基本信息 73.4 刷新LCD 83.5 LCD全屏刷新 93.6 进入/退出睡眠 93.7 调节LCD的对比度 104 附录 114.1 数据结构 114.1.1 LCD信息结构 LCD_INFO_T 114.1.2 LCD ID类型 LCD_ID_E 114.1.3 LCD错误类型 ERR_LCD_E 12介绍范围本文描述LCD驱动软件的向上层如MMI所提供的API,作为应用程序设计人员必须的参考文档。 参考文档无缩写和定义LCDLiquid Crystal DisplayMMIMan-M
3、achine Interface概述文件组织lcd_api.h该文件定义了所有的LCD接口函数,上层调用LCD提供的函数时需要包含该文件。LCD屏幕坐标LCD屏幕的坐标为二维坐标系统,设LCD宽为LCD-WIDTH,高为LCD-HEIGHT,则LCD屏幕的坐上交坐标表示为(0,0),右下角坐标表示为(LCD-WIDTH 1, LCD-HEIGHT 1)。LCD操作概述系统为每个LCD都分配了一个BUFFER,BUFFER中用于存放LCD上所有点颜色值,该BUFFER大小对应着LCD的屏幕大小,LCD上的每个PIXEL对应着BUFFER中的一个元素。如果LCD的PIXEL的颜色为8BITS,则B
4、UFFER的每个元素也同样为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进行操作,首先需要
5、获取该BUFFER的头指针,参考LCD_GetInfo()函数,然后对该BUFFER写入颜色值,最后调用LCD的刷新函数(LCD_InvalidateRect 、LCD_Invalidate)即可。 另外,控制LCD进入睡眠模式可以降低系统的功耗。接口函数说明LCD硬件初始化LCD_Init初始化LCD硬件,如果有多个LCD,则同时被该函数初始化。成功调用该函数后即可实现对LCD的操作。此后,打开LCD的背景灯则可看见LCD屏幕上的内容。PUBLIC ERR_LCD_E LCD_Init(void);参数:返回值:ERR_LCD_NONE为初始化成功,其它值为错误代码。参考:LCD_Close
6、举例:1.1 关闭LCD关闭LCD,当关机时会调用此函数。当有多个LCD设备时,该函数将关闭所有的LCD。PUBLIC void LCD_Close(void);1.2 获取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 );inlcd_id欲操作LCD的ID,参考LCD_ID_E
7、。outlcd_inf_ptrlcd的信息结构指针。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;*(uint
8、16 *)(buf_ptr + y*lcd_width + x) = 0x0f0f;然后根据需要调用LCD_Invalidate或者LCD_InvalidateRect函数刷新LCD有关区域。1.3 刷新LCD LCD_InvalidateRect刷新LCD 的某一矩形区域。该函数将LCD BUFFER中的颜色值写入到指定的区域中,如果该指定的区域超出了指定LCD的范围,则该函数将只刷新该指定区域与LCD区域的重叠部分,即LCD范围外的区域无效。PUBLIC ERR_LCD_E LCD_InvalidateRect(LCD_ID_E lcd_id, uint16 left, uint16 to
9、p, uint16 right, uint16 bottom );LCD IDinleft 矩形区域的左上角x坐标 intop矩形区域的左上角y坐标inright矩形区域的右下角x坐标inbottom矩形区域的右下角y坐标ERR_LCD_NONE为操作成功,其他值为操作失败。LCD_Invalidate1.4 LCD全屏刷新对指定LCD的整个屏幕进行刷新。PUBLIC ERR_LCD_E LCD_Invalidate(LCD_ID_E lcd_id );1.5 进入/退出睡眠LCD_EnterSleep 控制LCD进入或者退出睡眠模式。当LCD进入睡眠模式式,能降低功耗。为了配合降低系统的功耗
10、,在LCD进入睡眠模式时,应该同时关闭LCD的背景灯。当推出睡眠模式后,也要打开LCD的背景灯才能显示LCD屏幕上的内容。PUBLIC ERR_LCD_E LCD_EnterSleep(BOOLEAN is_sleep inis_sleepSCI_TRUE-进入睡眠模式 SCI_FALSE退出睡眠模式ERR_LCD_NONE为执行成功,其它值为错误代码。1.6 调节LCD的对比度LCD_SetContrast调节LCD 的对比度。PUBLIC ERR_LCD_E LCD_SetContrast(LCD_ID_E lcd_id, uint16 contrast参数:in lcd_id in co
11、ntrast对比度值,不同的LCD支持不同的取值范围。调用LCD_GetInfo 可以获取LCD对比度的最大值、最小值以及缺省值。返回值:ERR_LCD_NONE为设置对比度成功,其它值为错误代码。LCD_GetInfo附录数据结构LCD信息结构 LCD_INFO_Ttypedef struct lcd_info_taguint32 r_bitmask;uint32 g_bitmask;uint32 b_bitmask;uint16 bits_per_pixel;uint16 lcd_width;uint16 lcd_height;uint16 contrast_min;uint16 cont
12、rast_max;uint16 contrast_defaut;void *lcdbuff_ptr; LCD_INFO_T;r_bitmask r(Red color)的MASK值g_bitmask g(Green color)的MASK值b_bitmask b(Black color)的MASK值bits_per_pixel 每个PIXLE的颜色表示位数lcd_width LCD的宽度(单位为PIXEL)lcd_height LCD的高度(单位为PIXEL)contrast_min LCD支持的最小对比度contrast_max LCD支持的最大对比度contrast_defaut LCD的
13、缺省对比度值lcdbuff_ptr LCD BUFFER的头指针LCD ID类型 LCD_ID_Etypedef enumMAIN_LCD_ID = 0, SUB_LCD_ID,MAX_LCD_ID LCD_ID_E;MAIN_LCD_ID LCD主屏ID号,固定为0SUB_LCD_ID LCD附屏ID号MAX_LCD_ID 保留ID,用户不可使用LCD错误类型 ERR_LCD_EERR_LCD_NONE = SCI_SUCCESS,ERR_LCD_FUNC_NOT_SUPPORT,ERR_LCD_PARAMETER_WRONG, ERR_LCD_POINTER_NULL,ERR_LCD_OPERATE_FAIL, ERR_LCD_NOT_FOUND ERR_LCD_E;ERR_LCD_NONE 无错误ERR_LCD_FUNC_NOT_SUPPORT, 该LCD不支持该操作ERR_LCD_PARAMETER_WRONG, 输入参数错误ERR_LCD_POINTER_NULL, 指针为空ERR_LCD_OPERATE_FAIL, 操作失败 ERR_LCD_NOT_FOUND 未发现LCD
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1