1.显示驱动库
(1)显示驱动库概述
显示驱动用于图形库与特定显示器的接口。它负责处理有关显示的底层细节,包括与显示控制器进行通信和理解显示控制器所需命令的行为。
显示驱动程序必须提供两件事情;通过图形库将所需程序集绘制到屏幕上和一组用于执行与显示操作有关的例程。显示相关的操作会根据不同显示器有所不同,但都包含初始化程序,并可能包括诸如背光控制和对比度控制。
由图形库所需的例程组成的一个结构体来描述图形库的显示驱动程序。tDisplay结构体包含这些函数指针,以及屏幕的宽度和高度。显示驱动程序提供了这种结构的实例,以及在特定显示驱动程序的头文件中定义该结构体的原型。
对于一些显示器,它可能在本地存储器的缓冲区中绘制更有效,并在所有的绘图操作完成后将结果复制到屏幕上。这就是常用的4BPP真彩显示,其中在显示存储器中的每个字节有2个像素。在这种情况下,Flush()操作用于指示应该被复制到显示器上的本地显示缓冲区。
(2)tDisplay结构体定义
该结构体定义了与显示驱动有关的变量和参数,见表16-4。
表16-4 tDisplay
例如,在Tiva TM4C123G开发板中,采用CFAL9664-F-B1OLED和SSD1332控制芯片液晶屏的tDisplay结构体的定义如下:
在这个结构体中定义了OLED屏的色彩数据为16BPP,显示区大小(96(宽)×64(高)),以及调用了基本的图形绘制函数。
(3)显示驱动所使用的固件库函数介绍
①ColorTranslate函数,见表16-5。
表16-5 ColorTranslate
②Flush函数,见表16-6。
表16-6 Flush
③LineDrawH函数,见表16-7。
表16-7 LineDrawH
(续)
④LineDrawV函数,见表16-8。
表16-8 LineDrawV
⑤PixelDraw函数,见表16-9。
表16-9 PixelDraw
⑥PixelDraw函数,见表16-10。
表16-10 PixelDraw
⑦PixelDrawMultiple函数,见表16-11。
表16-11 PixelDrawMultiple
⑧RectFill函数,见表16-12。
表16-12 RectFill
(续)
(4)OELD液晶屏驱动程序片段解读
下面将对TI提供的CFAL96x64OLED液晶屏的驱动程序片段作一比较详细的介绍。
2.图形基元层
图形基元层提供了一组低层的绘图操作。这些操作包括画线、圆、文本和位图等。允许多个绘图操作使用离屏缓冲区,并将最后的结果一次性复制到屏幕上。
(1)常用数据结构定义
①tCodePointMap结构体,见表16-13。
表16-13 tCodePointMap
②tContext结构体,见表16-14。
表16-14 tContext(www.xing528.com)
(续)
③tFont结构体,见表16-15。
表16-15 tFont
④tGrLibDefaults结构体,见表16-16。
表16-16 tGrLibDefaults
⑤tRectangle结构体,见表16-17。
表16-17 tRectangle
(2)常用图形基元层的固件库函数
常用图形基元层的固件库函数见表16-18~16-31。
表16-18 GrCircleDraw
(续)
表16-19 GrCircleFill
表16-20 GrContextFontSet
表16-21 GrContextInit
表16-22 GrFontHeightGet
表16-23 GrFontMaxWidthGet
表16-24 GrFontNumBlocksGet
表16-25 GrImageDraw
表16-26 GrLineDraw
表16-27 GrLineDrawH
表16-28 GrLineDrawV
表16-29 GrRectDraw
(续)
表16-30 GrRectFill
表16-31 GrStringDraw
3.小工具层
小工具层位于图形基元层之上,由如下小工具组成:
①画布小工具(Canvas Widget)。
②复选框小工具(Checkbox Widget)。
③容器小工具(Container Widget)。
④图形按钮小工具(Image Button Widget)。
⑤列表框小工具(List Box Widget)。
⑥键盘小工具(Keyboard Widget)。
⑦按钮小工具(Push Button Widget)。
⑧单选按钮小工具(Radio Button Widget)。
⑨滑块小工具(Slider Widget)。
在遇到绘制以上列出的小工具图形时,仅需简单调用这些函数即可实现,比前面的显示驱动层和图像基元层绘图来得方便。这些固件库图形函数请参考TI的图形库函数(SW-TM4C-GRL-UG-2.0.1.11577)的小工具部分。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。