首页 理论教育 ARMCortexM4图形函数库简介

ARMCortexM4图形函数库简介

时间:2023-11-17 理论教育 版权反馈
【摘要】:由图形库所需的例程组成的一个结构体来描述图形库的显示驱动程序。显示驱动所使用的固件库函数介绍①ColorTranslate函数,见表16-5。表16-6Flush③LineDrawH函数,见表16-7。表16-17tRectangle常用图形基元层的固件库函数常用图形基元层的固件库函数见表16-18~16-31。

ARMCortexM4图形函数库简介

1.显示驱动库

(1)显示驱动库概述

显示驱动用于图形库与特定显示器接口。它负责处理有关显示的底层细节,包括与显示控制器进行通信和理解显示控制器所需命令的行为。

显示驱动程序必须提供两件事情;通过图形库将所需程序集绘制到屏幕上和一组用于执行与显示操作有关的例程。显示相关的操作会根据不同显示器有所不同,但都包含初始化程序,并可能包括诸如背光控制和对比度控制。

由图形库所需的例程组成的一个结构体来描述图形库的显示驱动程序。tDisplay结构体包含这些函数指针,以及屏幕的宽度和高度。显示驱动程序提供了这种结构的实例,以及在特定显示驱动程序的头文件中定义该结构体的原型。

对于一些显示器,它可能在本地存储器的缓冲区中绘制更有效,并在所有的绘图操作完成后将结果复制到屏幕上。这就是常用的4BPP真彩显示,其中在显示存储器中的每个字节有2个像素。在这种情况下,Flush()操作用于指示应该被复制到显示器上的本地显示缓冲区。

(2)tDisplay结构体定义

该结构体定义了与显示驱动有关的变量和参数,见表16-4。

表16-4 tDisplay

978-7-111-51624-8-Chapter16-28.jpg

例如,在Tiva TM4C123G开发板中,采用CFAL9664-F-B1OLED和SSD1332控制芯片液晶屏的tDisplay结构体的定义如下:

978-7-111-51624-8-Chapter16-29.jpg

978-7-111-51624-8-Chapter16-30.jpg

在这个结构体中定义了OLED屏的色彩数据为16BPP,显示区大小(96(宽)×64(高)),以及调用了基本的图形绘制函数。

(3)显示驱动所使用的固件库函数介绍

①ColorTranslate函数,见表16-5。

表16-5 ColorTranslate

978-7-111-51624-8-Chapter16-31.jpg

②Flush函数,见表16-6。

表16-6 Flush

978-7-111-51624-8-Chapter16-32.jpg

③LineDrawH函数,见表16-7。

表16-7 LineDrawH

978-7-111-51624-8-Chapter16-33.jpg

(续)

978-7-111-51624-8-Chapter16-34.jpg

④LineDrawV函数,见表16-8。

表16-8 LineDrawV

978-7-111-51624-8-Chapter16-35.jpg

⑤PixelDraw函数,见表16-9。

表16-9 PixelDraw

978-7-111-51624-8-Chapter16-36.jpg

⑥PixelDraw函数,见表16-10。

表16-10 PixelDraw

978-7-111-51624-8-Chapter16-37.jpg

⑦PixelDrawMultiple函数,见表16-11。

表16-11 PixelDrawMultiple

978-7-111-51624-8-Chapter16-38.jpg

⑧RectFill函数,见表16-12。

表16-12 RectFill

978-7-111-51624-8-Chapter16-39.jpg

(续)

978-7-111-51624-8-Chapter16-40.jpg

(4)OELD液晶屏驱动程序片段解读

下面将对TI提供的CFAL96x64OLED液晶屏的驱动程序片段作一比较详细的介绍。

978-7-111-51624-8-Chapter16-41.jpg

978-7-111-51624-8-Chapter16-42.jpg

978-7-111-51624-8-Chapter16-43.jpg

978-7-111-51624-8-Chapter16-44.jpg

978-7-111-51624-8-Chapter16-45.jpg

978-7-111-51624-8-Chapter16-46.jpg

2.图形基元层

图形基元层提供了一组低层的绘图操作。这些操作包括画线、圆、文本和位图等。允许多个绘图操作使用离屏缓冲区,并将最后的结果一次性复制到屏幕上。

(1)常用数据结构定义

①tCodePointMap结构体,见表16-13。

表16-13 tCodePointMap

978-7-111-51624-8-Chapter16-47.jpg

②tContext结构体,见表16-14。

表16-14 tContext(www.xing528.com)

978-7-111-51624-8-Chapter16-48.jpg

(续)

978-7-111-51624-8-Chapter16-49.jpg

③tFont结构体,见表16-15。

表16-15 tFont

978-7-111-51624-8-Chapter16-50.jpg

④tGrLibDefaults结构体,见表16-16。

表16-16 tGrLibDefaults

978-7-111-51624-8-Chapter16-51.jpg

⑤tRectangle结构体,见表16-17。

表16-17 tRectangle

978-7-111-51624-8-Chapter16-52.jpg

(2)常用图形基元层的固件库函数

常用图形基元层的固件库函数见表16-18~16-31。

表16-18 GrCircleDraw

978-7-111-51624-8-Chapter16-53.jpg

(续)

978-7-111-51624-8-Chapter16-54.jpg

表16-19 GrCircleFill

978-7-111-51624-8-Chapter16-55.jpg

表16-20 GrContextFontSet

978-7-111-51624-8-Chapter16-56.jpg

表16-21 GrContextInit

978-7-111-51624-8-Chapter16-57.jpg

表16-22 GrFontHeightGet

978-7-111-51624-8-Chapter16-58.jpg

表16-23 GrFontMaxWidthGet

978-7-111-51624-8-Chapter16-59.jpg

表16-24 GrFontNumBlocksGet

978-7-111-51624-8-Chapter16-60.jpg

表16-25 GrImageDraw

978-7-111-51624-8-Chapter16-61.jpg

表16-26 GrLineDraw

978-7-111-51624-8-Chapter16-62.jpg

表16-27 GrLineDrawH

978-7-111-51624-8-Chapter16-63.jpg

表16-28 GrLineDrawV

978-7-111-51624-8-Chapter16-64.jpg

表16-29 GrRectDraw

978-7-111-51624-8-Chapter16-65.jpg

(续)

978-7-111-51624-8-Chapter16-66.jpg

表16-30 GrRectFill

978-7-111-51624-8-Chapter16-67.jpg

表16-31 GrStringDraw

978-7-111-51624-8-Chapter16-68.jpg

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)的小工具部分。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈