LCD的使用

目录

一.LCD介绍

二.显示器的基本参数

(1)像素

(2)分辨率

(3)色彩深度

(4)显示器尺寸

(5)点距

三.图像处理单元

四.初始化

 五.切换字体大小格式

 六.切换字体颜色和字体背景颜色

 


 

 


 

一.LCD介绍

     显示器属于计算机的 I/O 设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有 CRT 显示器、液晶显示器、LED 点阵显示器及OLED 显示器。它与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量

 

二.显示器的基本参数


不管是哪一种显示器,都有一定的参数用于描述它们的特性,各个参数介绍如下:

(1)像素


      像素是组成图像的最基本单元要素,显示器的像素指它成像最小的点,即前面讲解液晶原理中提到的一个显示单元。

(2)分辨率


        一些嵌入式设备的显示器常常以“行像素值x列像素值”表示屏幕的分辨率。如分辨率800x480表示该显示器的每一行有800个像素点,每一列有480个像素点,也可理解为有800列,480行。

(3)色彩深度


        色彩深度指显示器的每个像素点能表示多少种颜色,一般用“位”(bit)来表示。如单色屏的每个像素点能表示亮或灭两种状态(即实际上能显示2种颜色),用1个数据位就可以表示像素点的所有状态,所以它的色彩深度为1bit,其它常见的显示屏色深为16bit(RGB565)、24bit(RGB888,即RGB每个颜色的范围都是0-255)。

(4)显示器尺寸


        显示器的大小一般以英寸表示,如5英寸、21英寸、24英寸等,这个长度是指屏幕对角线的长度, 通过显示器的对角线长度及长宽比可确定显示器的实际长宽尺寸。

(5)点距


        点距指两个相邻像素点之间的距离,它会影响画质的细腻度及观看距离,相同尺寸的屏幕,若分辨率越高,则点距越小,画质越细腻。如现在有些手机的屏幕分辨率比电脑显示器的还大,这是手机屏幕点距小的原因;LED点阵显示屏的点距一般都比较大,所以适合远距离观看。

三.图像处理单元


LTDC 框图标号表示的是图像处理单元,它通过“AHB 接口”获取显存中的数据,然后按分层把
数据分别发送到两个“层 FIFO”缓存,每个 FIFO 可缓存 64x32 位的数据,接着从缓存中获取数
据交给“PFC”(像素格式转换器),它把数据从像素格式转换成字 (ARGB8888) 的格式,再经过
“混合单元”把两层数据合并起来,最终混合得到的是单层要显示的数据,通过信号线输出到液
晶面板。这部分结构与 DMA2D 的很类似,我们在下一小节详细讲解。
在输出前混合单元的数据还经过一个“抖动单元”,它的作用是当像素数据格式的色深大于液晶
面板实际色深时,对像素数据颜色进行舍入操作,如向 18 位显示器上显示 24 位数据时,抖动单
元把像素数据的低 6 位与阈值比较,若大于阈值,则向数据的第 7 位进 1,否则直接舍掉低 6 位。 

四.初始化

首先要进行屏幕初始化和屏幕显示层初始化和LTCD外设初始化

LCD_Init();              //屏幕初始化
LCD_LayerInit();             //屏幕显示层初始化

 LTDC_Cmd(ENABLE);             //LTCD外设初始化

 五.切换字体大小格式


液晶显示中,文字内容占据了很大部分,显示文字需要有“字模数据”配合。关于字
模的知识我们在下一章节讲解,在这里只简单介绍一下基本概念。字模是一个个像素
点阵方块,如上述代码中的 sFont 结构体,包含了指向字模数据的指针以及每个字模
的像素宽度、高度,即字体的大小。本实验的工程中提供了像素格式为 16x24、12x12、
8x12、8x8 的英文字模。为了方便选择字模,定义了全局指针变量 LCD_Currentfonts
用来存储当前选择的字模格式,实际显示时根据该指针指向的字模格式来显示文字,
可以使用下面的 LCD_SetFont 函数切换指针指向的字模格式,该函数的可输入参数
为: Font16x24/ Font12x12/ Font8x12/ Font8x8。

LCD_SetFont(&Font16x24);

 
六.切换字体颜色和字体背景颜色


很多时候我们还希望文字能以不同的色彩显示,为此定义了全局变量 CurrentTextColor
和 CurrentBackColor 用于设定要显示字体的颜色和字体背景颜色,如:字体为红色和
字体背景为蓝色
使用函数 LCD_SetColors、LCD_SetTextColor 以及 LCD_SetBackColor 可以方便修改这
两个全局变量的值。若液晶的像素格式支持透明,可把字体背景设置为透明值,实现
弹幕显示的效果 (文字浮在图片之上,透过文字可看到背景图片)

    LCD_SetLayer(LCD_BACKGROUND_LAYER);        //把背景层刷黑色,选定控制背景层
    LCD_Clear(LCD_COLOR_BLACK);                //清除屏幕并用黑色填充
    LCD_SetLayer(LCD_FOREGROUND_LAYER);
    LCD_SetTransparency(0xFF);
    LCD_Clear(LCD_COLOR_BLACK);                 //清除屏幕并用黑色填充

 可以根据所写的内容定义按键的数让所选文字不一

LCD_SetColors(LCD_COLOR_BLACK,LCD_COLOR_WHITE);//选择时的颜色
LCD_DisplayStringLine(LINE(3),(uint8_t*)"BEEP");//选中内容
LCD_SetColors(LCD_COLOR_WHITE,LCD_COLOR_BLACK);//不选中的颜色           

除此之外,还可以利用其它函数画其他东西,例如椭圆,在括号里填上该对象的大小即可。切记不要超过屏幕大小,不然不会显示在屏幕内。以下是我画的一些参考

 LCD_DrawCircle(400,200,50);//圆
LCD_DrawRect(300,200,100,100);//长方形
 LCD_DrawUniLine(200, 200, 300, 100);    //三角形
 LCD_DrawUniLine(200, 200, 300,300 );    
  LCD_DrawUniLine(300, 100, 300,300 );    
//    LCD_FillTriangle ();//三角形       

 

 

 

  • 24
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值