图形快速参考指南 - Microchip...

16
www.microchip.com/graphics 图形快速参考指南 20119快速参考指南

Transcript of 图形快速参考指南 - Microchip...

Page 1: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

www.microchip.com/graphics

图形快速参考指南

2011年9月

快速参考指南

Page 2: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

2 图形快速参考指南

下表列出了一些常用分辨率和颜色深度所需的帧缓冲器大小

的示例。

■ PIC24 DA系列最高支持片上96 KB■ PIC32 MCU最高支持片上128 KB■ 外部SRAM可用于较大的帧缓冲器

■ 对于高级图形显示,外部图形控制器可提供更多的帧缓冲

器存储空间

显示屏分辨率典型尺寸

颜色深度/

存储容量要求(字节)

1 bpp

(单色)2 bpp

(4级)8 bpp

(256色)16 bpp

(6.5万色)

WVGA 800x480 7˝ 48,000 96,000 384,000 768,000

VGA 640x480 5.7˝ 38,400 76,800 307,200 614,400

WQVGA 480x272 4.3˝ 16,320 32,640 130,560 261,120

QVGA 320x240 3.2˝ 9,600 19,200 76,800 153,600

OLED常用

128x64 1˝-2.7˝ 1,024 2,048 8,192 16,384

PIC24 DA或PIC32 MCU上的内部SRAM 外部SRAM

目标应用

可通过吸引眼球且易于使用的图形显示获益的应用包括:

消费电子:温控器、无绳电话和遥控器

家用电器:咖啡机、洗衣机和烤箱

工业:数字仪器仪表、存储控制和远程终端

便携式医疗仪器:血糖仪、血压计和便携式ECG

Microchip提供不同级别的解决方案,以驱动从简单的单色

LCD到全彩WVGA用户界面等各种显示屏。

图形支持包括以下方式:

■ PIC24F DA集成图形控制器

■ PIC32无控制器图形显示

■ 支持PIC® MCU与外部图形控制器相结合

芯片产品与功能强大且易于使用的免费图形库、显示设计器

GUI,以及可与各种尺寸显示屏灵活连接的硬件开发工具包相

辅相成。

支持的屏幕尺寸和颜色Microchip图形解决方案支持各种屏幕尺寸和颜色,从小尺寸单色OLED显示屏到色彩丰富的WVGA显示屏。下表列出了表示颜色所需的每像素位数。

显示表示 颜色示例 颜色深度(每像素位数)

单色 黑白 1

灰度4级

16级24

彩色256色

6.5万色1600万色

81624

随着颜色深度和显示分辨率的升高,帧缓冲器的容量会随之

增长。根据其大小,帧缓冲器可以存储在单片机RAM中、外

部SRAM中或集成到外部图形控制器中。

显示控制器解决方案——图形显示

PIC24 DA集成图形控制器

PIC32

无控制器图形显示外部Solomon Systech

图形控制器SSD1926

外部Epson

图形控制器S1D13517

显示屏* WQVGA 480x272 WQVGA 480x272 WQVGA 480x272 WVGA 800x480

图形 硬件加速:矩形、字符和图像 PIC32上的DMA + <5 MIPS 硬件加速、SD卡、I/F和JPEG引擎 SDRAM、I/F、α混叠和画中画

帧缓冲器 颜色查找表 + MCU上96 KB + 外部SRAM MCU上128 KB + 外部SRAM Solomon Systech控制器上256 KB 外部SDRAM

内核MIPS 16 80 – –

功耗 较低 低 低 低

成本 $ $ $$ $$$

*16 bpp、60 Hz配置下的最大尺寸

Page 3: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

图形快速参考指南 3

PIC32低成本无控制器图形显示:32位性能、灵活性、集成

Microchip的32位单片机PIC32产品线提供了80 MIPS处理能力

和高性能DMA,可直接向显示屏渲染图形。这使PIC32器件无

需外部图形控制器即可驱动显示屏。

■ 使用<5 MIPS的处理能力和DMA来渲染图形

– 可直接与STN和TFT显示屏相连

■ 集成128 KB帧缓冲器

– 使用内部帧缓冲器可支持QVGA 8 bpp显示

– 通过并行主端口(PMP)使用外部帧缓冲器可支持

WQVGA 16 bpp显示

■ 可与任何PIC32 80 MIPS 32位单片机配合工作

器件最高具有512 KB闪存和128 KB RAM,这给开发人员在设

计应用程序代码、通信协议栈和数据缓冲时提供了充足的空

间。除了图形功能之外,PIC32 MCU还集成了用于USB、CAN、以太网和电容触摸传感的外设。

外部图形控制器:带并行主端口(PMP)的PIC24或PIC32 MCU

PIC24和PIC32 MCU还可以与外部图形控制器配合工作,以支

持更大的屏幕尺寸或更高级的图形功能。

Solomon Systech SSD1926图形控制器具有硬件图形加速功能,

对PIC MCU的MIPS处理能力没有要求。该控制器包含SD卡接

口和JPEG解码引擎,以及256 KB的RAM。图形PICtail™ Plus SSD1926电路板(AC164127-5)包含用于数据存储的串行闪

存,以及用于Explorer 16或PIC32入门工具包的接口。

Epson S1D13517图形控制器包含α混叠、画中画功能,并且最高可

支持24 bpp配置下的WVGA(800x480)。该控制器具有SDRAM接口,可用于连接低成本外部存储器。图形控制器PICtail Plus Epson S1D13517电路板(AC164127-7)包含128 Mb SDRAM帧缓冲器和

16 Mb串行闪存,以及用于Explorer 16或PIC32入门工具包的接口。

集成图形控制器的PIC24F:成本低、易于使用

PIC24F DA系列使应用可以方便地添加高级图形显示功能,无

需使用外部帧缓冲器或显示控制器,从而实现高成本效益。

■ 专用的图形时钟,支持连续清晰的显示

■ 片上显示控制器,可直接与TFT、STN和OLED显示屏相连

■ 易于使用的图形处理单元,用于硬件加速

– 通过平滑、快速的存储器传输来移动和复制矩形

– 解压缩图像时无需CPU干预

– 渲染文本时无需CPU干预

■ 颜色查找表和96 KB帧缓冲器,支持多种颜色

– 使用内部帧缓冲器可支持QVGA 8 bpp显示

– 通过并行主端口(PMP)使用外部帧缓冲器可支持

WQVGA 16 bpp显示

利用硬件加速,该系列无需耗用任何MCU MIPS处理能力即可处理

和渲染图形。专用的图形引擎能够持续驱动显示屏,而不与任何其

他功能共用。

图形显示配置

DMA128 KB RAM

Page 4: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

4 图形快速参考指南

免费的Microchip图形库

Microchip图形库经过高度模块化,并且针对Microchip的16位和32位单片机进行了优化。它易于使用并且具有一个开放源

代码和文件的接口来实现对驱动器或控制器的支持。该图形

库支持以下功能:

■ 预先制作的图形对象

■ 多种字体和语言

■ mTouch™触摸传感用户界面

■ 包括按钮、图表、复选框、滚动条、列表框、图像和基本

动画

图形库、设计器和应用笔记

免费的Microchip图形显示设计器

Microchip图形显示设

计器(GDD)是一款可

视设计工具,客户可使

用该工具快速方便地

为采用Microchip MCU的图形界面应用创建

图形用户界面(GUI)屏幕。

它为开发人员带来以下好处:

■ 能够绘制、缩放或删除屏幕对象,从而简化GUI屏幕的编码

■ 无需手动计算屏幕上对象位置的X/Y坐标

■ 生成输出源文件

■ 能够导入各种图形资源,包括自定义字体和位图图像

有关图形显示的应用笔记■ 《如何使用Microchip图形库中的控件》,AN1136■ 《Microchip图形库中的字体》,AN1182■ 《如何在Microchip图形库中创建控件》,AN1246■ 《Microchip图形库与键盘的配合使用》,AN1227■ Developing Graphics Applications using MCU with Integrated Controller,AN1368■ 《使用PIC32 MCU开发低成本无控制器(LCC)图形解决

方案》,AN1387

图形显示控制器的开发工具

系列

支持的显示电路板

QVGA 3.2″图形图形显示显示Truly 240x320

电路板电路板(AC164127-4)

WQVGA 4.3″图形图形显示显示Powertip 480x272

电路板电路板(AC164127-6)

VGA 5.7″图形图形显示显示Truly 640x480

电路板电路板(AC164127-8)

WVGA 7″图形图形显示显示Truly 800x480

电路板电路板(AC164127-9)

原型板连接显示屏原型板连接显示屏(AC164139)

PIC24 DA系列 PIC24FJ256DA210电路板(DM240312)+ 显示电路板 8 bpp或30 Hz 是

PIC32 LCC图形 PIC32入门工具包(DM320001或DM320003-2)+ LCC图形板(AC164144)+ 显示电路板

8 bpp或30 Hz 是

PIC24 + Solomon Systech

SSD1926

Explorer 16(DM240001)+ Solomon Systech GFX电路板(AC164127-5)+ 显示电路板

PIC32 + Solomon Systech

SSD1926

PIC32入门工具包(DM320001或DM320003-2)+ 集成显示屏的多媒体扩展板(DM320005)

PIC32 + Solomon Systech

SSD1926

PIC32入门工具包(DM320001或DM320003-2)+ Solomon Systech GFX电路板(AC164127-5)+ 显示电路板

PIC24 + Epson S1D13517 Explorer 16(DM240001)+ Epson GFX电路板(AC164127-7)+ 显示电路板 是

PIC32 + Epson S1D13517 PIC32入门工具包(DM320001或DM320003-2或DM320004)+ Epson GFX电路板(AC164127-7)+ 显示电路板

注:这些建议均基于PIC MCU LCD控制器具有16 bpp、60 Hz性能。

Page 5: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

图形快速参考指南 5

Microchip图形解决方案下表列出了对以下开发板和工具包的即开即用支持。通过适当的软硬件配置,可以实现与一些硬件组合和其他PIC器件的兼容性。

基于PIC32入门工具包PIC32

入门工具包(DM320001)

PIC32 USB

入门工具包II

(DM320003-2)

PIC32以太网入门工具包

(DM320004)

PIC24E USB

入门工具包(DM240012)

dsPIC33E USB

入门工具包(DM330012)

图形显示Truly

3.2″240x320

电路板(AC164127-4)

图形显示Powertip

4.3″480x272

电路板(AC164127-6)

图形显示Truly

5.7″640x480

电路板(AC164127-8)

图形显示Truly

7″800x480

电路板(AC164127-9)

图形显示原型板

(AC164139)

图形图形LCD控制器控制器 PICtail™ Plus

SSD1926电路板(电路板(AC164127-5) – + + – (1) – (1) (2)

图形控制器图形控制器PICtail™ Plus Epson

S1D13517电路板(电路板(AC164127-7) + + (2)

低成本无控制器低成本无控制器(LCC)图形图形PICtail™ Plus子板子板(AC164144)

+ + (3) – (2)

多媒体扩展板(多媒体扩展板(DM320005) – – – – –

开发板Explorer 16开发板(DM240001)+

接插模块(PIM)

图形显示Truly

3.2″240x320

电路板(AC164127-4)

图形显示Powertip

4.3″480x272

电路板(AC164127-6)

图形显示Truly

5.7″640x480

电路板(AC164127-8)

图形显示Truly

7″800x480

电路板(AC164127-9)

图形显示原型板

(AC164139)

PIC24FJ256DA210开发板开发板(DM240312)

(4) (5) (3) – (2)

图形图形LCD控制器控制器 PICtail™ Plus

SSD1926电路板(电路板(AC164127-5)

PIC24F PIM – – (2)

PIC32MX PIM – – (2)

PIC24EP和dsPIC33EP PIM + – – (2)

PIC24H和dsPIC33F PIM – – (2)

图形控制器图形控制器PICtail™ Plus Epson

S1D13517电路板(电路板(AC164127-7)

PIC24F PIM – (2)

PIC32MX PIM (2)

PIC24EP和dsPIC33EP PIM + (2)

PIC24H和dsPIC33F PIM + + + + + (2)

低成本无控制器(低成本无控制器(LCC)图形图形PICtail™ Plus子板子板(AC164144)

PIC24F PIM – – – – – –PIC32MX PIM – – (3) – (2)

PIC24EP和dsPIC33EP PIM + + + + (3) – + (2)

PIC24H和dsPIC33F PIM – – – – – –独立开发板

用于PIC24H MCU的MPLAB®入门工具包(DM240021) 带内置显示屏的独立开发板。

用于PIC24F MCU的MPLAB®入门工具包(DM240011) 带内置显示屏的独立开发板。

PIC24F PIM

PIC24FJ128GA010 PIM(MA240011)PIC24FJ256GA110 PIM(MA240015)PIC24FJ256GB110 PIM(MA240014)PIC24FJ256GB210 PIM(MA240021)

PIC32MX PIMPIC32MX360F512L PIM(MA320001)PIC32MX460F512L PIM(MA320002)PIC32MX795F512L PIM(MA320003)

PIC24EP和dsPIC33EP PIM dsPIC33EP512MU810 PIM(MA330025-1)PIC24EP512GU810(MA240025-1)

PIC24H和dsPIC33F PIM PIC24HJ128GP504 PIM(MA240016-2)dsPIC33FJ128GP804 PIM(MA330019-2)

= 兼容(直接使用)

+ = 兼容(需修改固件)

– = 不兼容

注:1. SSD1926最高支持WQVGA(480x272)显示屏。2. 手动将所选显示面板组装为原型板。3. 使用外部存储器以8 bpp运行。4. 8 bpp或更低配置使用内部存储器,8 bpp或16 bpp使用外部存储器。5. 8 bpp或16 bpp使用外部存储器。

用于设计图形显示的工具

Page 6: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

6 图形快速参考指南

用于设计图形显示的工具

开发工具 部件编号 工具图像

PIC24FJ256DA210

开发板 DM240312

Explorer 16

开发板 DM240001

多媒体扩展板 DM320005

图形LCD控制器

PICtail™ Plus

SSD1926电路板AC164127-5

图形控制器

PICtail™ Plus Epson

S1D13517电路板AC164127-7

低成本无控制器(LCC)图形PICtail™ Plus子板 AC164144

图形显示Truly 3.2″240x320

电路板AC164127-4

图形显示Powertip 4.3″480x272

电路板AC164127-6

图形显示Truly 5.7″640x480

电路板AC164127-8

图形显示Truly 7″800x480

电路板AC164127-9

开发工具 部件编号 工具图像

PIC32入门工具包 DM320001

PIC32 USB

入门工具包IIDM320003-2

PIC32以太网入门工具包 DM320004

PIC24E USB

入门工具包 DM240012

dsPIC33E USB

入门工具包 DM330012

图形显示原型板 AC164139

原型PICtail™ Plus子板 AC164126

用于PIC24H MCU的MPLAB®入门工具包 DM240021

用于PIC24F MCU的MPLAB®入门工具包 DM240011

Page 7: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

图形快速参考指南 7

Microchip图形库快速参考指南2011年8月22日——基于图形库V3.01 该卡包含API的简短说明。关于API的完整说明,请参见图形库帮助文件。

预定义类型

GFX_COLOR 颜色数据的数据类型。取决于COLOR_DEPTH设置。COLOR_DEPTH 数据类型 8 typedef BYTE GFX_COLOR; 16 typedef WORD GFX_COLOR; 24 typedef DWORD GFX_COLOR;

XCHAR 字符的数据类型。通过GraphicsConfi g.h中的宏设置 宏 XCHAR数据类型#defi ne USE_MULTIBYTECHAR signed int#defi ne USE_UNSIGNED_XCHAR unsigned char以上皆不是 signed char

设备驱动程序层

设备驱动程序层 说明

void ResetDevice() 初始化显示接口并复位显示屏。

void PutPixel(SHORT x, SHORT y) 使用当前设置的颜色渲染位于给定x,y位置的像素。

GFX_COLOR GetPixel( SHORT x, SHORT y)

返回位于给定x,y位置的像素颜色。

void DisplayBrightness(WORD level) 设置显示屏的亮度(级别:0-100)。

WORD IsDeviceBusy() 如果显示控制器正忙于先前的渲染操作,则返回非零。如果空闲,则返回零。

WORD GetMaxX() 返回最大水平坐标。

WORD GetMaxY() 返回最大垂直坐标。

void SetClip(BYTE control) 使能/禁止裁剪。 控制 定义CLIP_DISABLE 禁止裁剪CLIP_ENABLE 使能裁剪

void SetClipRgn( SHORT left, SHORT top, SHORT right, SHORT bottom)

使用给定坐标设置裁剪区域。

WORD GetClipLeft() 返回左裁剪边界。

WORD GetClipRight() 返回右裁剪边界。

WORD GetClipTop() 返回上裁剪边界。

WORD GetClipBottom() 返回下裁剪边界。

void SetColor(GFX_COLOR color) 设置当前绘制颜色。

GFX_COLOR GetColor() 返回当前绘制颜色。

void TransparentColorEnable( GFX_COLOR color)

设置透明色,并使能PutImage()的透明色功能。图形配置:USE_TRANSPARENT_COLOR

void TransparentColorDisable() 禁止PutImage()的透明色功能。图形配置:USE_TRANSPARENT_COLOR

WORD GetTransparentColorStatus() 返回PutImage()的透明色功能的当前状态。 返回值 定义TRANSPARENT_COLOR_DISABLE 功能已禁止TRANSPARENT_COLOR_ENABLE 功能已使能图形配置:USE_TRANSPARENT_COLOR

GFX_COLOR GetTransparentColor() 返回TransparentColorEnable()设置的当前透明色。

void SetActivePage(WORD page) 设置活动页面。活动页面是用于渲染的缓冲器。(1)

注:1. 只有显示控制器支持多个显示缓冲器(或页面)时,才会使能该API。2. 这是一项可选功能,只有显示控制器支持像素数据块寻址时才会实现。

设备驱动程序层 说明

void SetVisualPage(WORD page) 设置可视页面。可视页面(显示缓冲器)是在显示屏上显示的页面。(1)

WORD CopyWindow( DWORD srcAddr, DWORD dstAddr, WORD srcX, WORD srcY, WORD dstX, WORD dstY, WORD width, WORD height)

将位于由srcAddr和srcX与srcY所设置像素偏移量定义的地址中的窗口内容复制到由dstAddr和dstX与dstY所设置像素偏移量定义的地址位置。所复制窗口的大小由给定的width和height设置。(2)

WORD CopyPageWindow( BYTE srcPage, BYTE dstPage, WORD srcX, WORD srcY, WORD dstX, WORD dstY, WORD width, WORD height);

将位于由srcPage和srcX与srcY所设置像素偏移量定义的页面中的窗口内容复制到由dstPage和dstX与dstY所设置像素偏移量定义的另一个页面。所复制窗口的大小由给定的width和height设置。(1, 2)

WORD CopyBlock( DWORD srcAddr, DWORD dstAddr, DWORD srcOffset, DWORD dstOffset, WORD width, WORD height);

将给定源地址srcAddr与偏移量srcOffset处的像素块复制到由dstAddr与给定偏移量dstOffset给出的目标地址。所复制块的大小由给定的width和height设置。(2)

void SwitchOnDoubleBuffering() 开启双重缓冲的自动管理。所有渲染将对当前设置的绘制缓冲器执行。图形配置:USE_DOUBLE_BUFFERING

void SwitchOffDoubleBuffering() 关闭双重缓冲的自动管理。所有渲染将对当前设置的显示缓冲器执行。图形配置:USE_DOUBLE_BUFFERING

BYTE IsDisplayUpdatePending() 返回由RequestDisplayUpdate()设置的显示更新的状态。图形配置:USE_DOUBLE_BUFFERING

void RequestDisplayUpdate(void) 安排绘制缓冲器和显示缓冲器的内容在下一次垂直消隐时进行同步。图形配置:USE_DOUBLE_BUFFERING

void InvalidateAll() 将整个屏幕区域标记为失效。图形配置:USE_DOUBLE_BUFFERING

void InvalidateRectangle( WORD left, WORD top, WORD right, WORD bottom);

使显示缓冲器中的指定矩形区域失效。在下一次同步绘制和显示缓冲器时,将使用绘制缓冲器中的数据刷新失效的矩形。

图形配置:USE_DOUBLE_BUFFERING

void UpdateDisplayNow() 立即同步绘制和显示缓冲器。图形配置:USE_DOUBLE_BUFFERING

Microchip图形库快速参考指南

Page 8: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

8 图形快速参考指南

原语层

原语层 说明

void InitGraph() 初始化显示控制器,将屏幕设置为BLACK,将当前颜色设置为WHITE,将光标设置在(0,0),将线条类型设置为SOLID_LINE,以及将活动页面和可视页面设置为0。

void ClearDevice() 使用当前颜色清屏,并将光标设置在(0,0)。

SHORT GetX() 返回图形光标x坐标。

SHORT GetY() 返回图形光标y坐标。

void MoveTo( SHORT x, SHORT y)

将图形光标移动到新的x,y位置。

void MovetoRel(SHORT x, SHORT y) 相对于当前位置移动图形光标。

void SetFont(void *pFont) 设置在渲染字符时使用的当前字体。

void SetFontOrientation(WORD orient) 将字体方向设置为垂直或水平方向。 方向 定义ORIENT_HOR 水平ORIENT_VER 垂直

BYTE GetFontOrientation() 返回当前字体方向(垂直或水平)。请参见SetFontOrientation()。

WORD OutChar(XCHAR ch) 使用当前设置的字体和颜色,在当前图形光标位置渲染由字符ID ch所代表的字符。

WORD OutText(XCHAR *pString) 使用当前设置的字体和颜色,在当前图形光标位置渲染pString指向的字符串。

WORD OutTextXY( SHORT x, SHORT y, XCHAR *pString)

使用当前设置的字体和颜色,在x,y指定的位置渲染pString指向的指定字符串。

SHORT GetTextHeight(void *pFont) 返回指定字体的高度。

SHORT GetTextWidth( XCHAR pString, void *pFont)

返回指定字符串对于指定字体的宽度。

void SetLineType(WORD lnType) 设置要渲染的线条类型。 lnType 定义SOLID_LINE 实线DASHED_LINE 虚线

void SetLineThickness(WORD lnThickness) 设置要渲染的线条粗细。 lnThickness 定义NORMAL_LINE 1个像素粗THICK_LINE 3个像素粗

WORD Line( SHORT x1, SHORT y1, SHORT x2, SHORT y2)

使用当前设置的线条类型、线条粗细和颜色从x1,y1至x2,y2渲染一条直线。

WORD LineRel( SHORT x, SHORT y)

使用当前设置的线条类型、线条粗细和颜色从当前图形光标位置到由给定x和y位移指定的相对位置渲染一条直线。

WORD LineTo( SHORT x, SHORT y)

使用当前设置的线条类型、线条粗细和颜色从当前图形光标位置到给定x,y位置渲染一条直线。

注:1. 这是一项可选功能,只有显示控制器支持α混叠时才会实现。

原语层 说明

WORD Circle( SHORT x, SHORT y, SHORT r)

使用当前设置的线条类型、线条粗细和颜色,以x,y为中心、r为半径渲染一个圆圈。

WORD FillCircle( SHORT x, SHORT y, SHORT r)

使用当前设置的颜色,以x,y为中心、r为半径渲染一个实心圆。

WORD DrawPoly( SHORT numPoints, SHORT *polyPoints)

使用当前设置的线条类型、线条粗细和颜色渲染一个多边形,多边形点的数量由numPoints给出,多边形各点的位置由polyPoints指向的数组给出。PolyPoints[n] = x0,y0,x1,y1,…xn,yn;n = numPoints

WORD Arc( SHORT xL, SHORT yR, SHORT xR, SHORT yB, SHORT r1, SHORT r2, BYTE octant)

使用给定的中心、半径和八分圆掩码绘制斜角图的八分圆弧。

WORD PutImage( SHORT left, SHORT top, void *pBitmap, BYTE stretch)

从左上角开始,渲染pBitmap指向的图像。

SHORT GetImageHeight( void *pBitmap)

返回图像高度。

SHORT GetImageWidth( void *pBitmap)

返回图像宽度。

SHORT GetSineCosine( SHORT v, WORD type)

返回给定角度v的正弦或余弦(类型 = GETSINE或GETCOSINE)值。返回值均归一化为256。

SHORT Sine( SHORT v)

返回给定角度v的正弦值。返回值均归一化为256。

SHORT Cosine( SHORT v)

返回给定角度v的余弦值。返回值均归一化为256。

WORD AlphaBlendWindow( DWORD foregroundWindowAddr, DWORD backgroundWindowAddr, DWORD destinationWindowAddr, WORD width, WORD height, BYTE alphaPercentage)

使用由width和height指定的尺寸对前景和背景图像进行α混叠,并将结果写入到目标地址。图形配置:USE_ALPHA_BLEND(1)

DWORD GFXGetPageXYAddress( SHORT pageNumber, WORD x, WORD y)

计算位于x,y位置的像素在pageNumber指定的缓冲器内的地址。图形配置:USE_ALPHA_BLEND(1)

DWORD GFXGetPageOriginAddress( SHORT pageNumber)

计算pageNumber指定的缓冲器的地址。图形配置:USE_ALPHA_BLEND(1)

WORD ExternalMemoryCallback( GFX_EXTDATA *memory, LONG offset, WORD nCount, void *buffer)

当使用外部存储器时,必须在应用程序代码中实现该函数,并包含通过相应外部存储器驱动程序访问外部存储器的代码。

图形配置:USE_FONT_EXTERNAL或USE_BITMAP_EXTERNAL

Microchip图形库快速参考指南

Page 9: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

图形快速参考指南 9

GOL层GOL层 说明

void GOLInit() 该函数会初始化对象层、原语层和显示驱动程序层。使用默认设置创建默认的样式方案。

WORD GOLDraw() 渲染活动列表中需要渲染的所有控件。

WORD GOLDrawCallback() 在应用程序中实现的函数。函数由GOLDraw()调用,以支持应用程序定义的渲染。

void GOLRedraw(OBJ_HEADER pObj) 设置要在下一次GOLDraw()重新绘制的控件的绘制状态。

void GOLRedrawRec( SHORT left, SHORT top, SHORT right, SHORT bottom)

对活动列表中与给定矩形区域相交的所有控件进行标记。

WORD IsObjUpdated(OBJ_HEADER pObj) 测试控件是否等待重新绘制。如果待处理,则返回非零;不然,则返回零。

void GOLDrawComplete(OBJ_HEADER pObj) 复位控件的绘制状态。

void GOLAddObject(OBJ_HEADER pObj) 将控件添加到活动列表的末尾。

void GOLFree() 释放由当前活动列表使用的存储空间。活动列表将变为空。

OBJ_HEADER *GOLFindObject(WORD ID) 返回活动列表中具有给定ID的控件的指针。

BOOL GOLDeleteObject(OBJ_HEADER pObj) 从当前活动列表中删除一个控件。

BOOL GOLDeleteObjectByID(WORD ID) 从当前活动列表中删除一个控件。

GOL_OBJ_TYPE GetObjType(OBJ_HEADER pObj) 返回指定控件的控件类型。

WORD GetObjID(OBJ_HEADER pObj) 返回指定控件的对象ID。

OBJ_HEADER *GetObjNext(OBJ_HEADER pObj) 返回活动列表中紧接指定控件的下一个控件的指针。

void GOLNewList() 启动新的但为空的控件列表。使用GOLAddObjects()来填充列表。

OBJ_HEADER *GOLGetList() 返回指向当前活动列表的指针。

void GOLSetList(OBJ_HEADER pObjList) 将活动列表设置为由pObjList指定的指针。

void GOLSetFocus(OBJ_HEADER pObj) 设置要聚焦的控件pObj。

OBJ_HEADER *GOLGetFocus() 返回活动列表中当前所聚焦的控件的指针。

WORD GOLCanBeFocused(OBJ_HEADER pObj) 如果该控件可以聚焦,返回非零。

OBJ_HEADER *GOLGetFocusNext() 返回活动列表中下一个可以聚焦的控件的指针。

OBJ_HEADER *GOLGetFocusPrev() 返回活动列表中上一个可以聚焦的控件的指针。

GOL层 说明

GOLPanelDraw( SHORT left, SHORT top, SHORT right, SHORT bottom, SHORT radius, GFX_COLOR faceClr, GFX_COLOR embossLtClr, GFX_COLOR embossDkClr, void *pBitmap, WORD embossSize)

设置绘制面板的参数。使用该API设置GOLPanelDrawTsk()和GOLTwoTonePanelDrawTask()。

WORD GOLPanelDrawTsk() 使用由GOLPanelDraw()设置的参数渲染面板。

WORD GOLTwoTonePanelDrawTsk() 使用由GOLPanelDraw()设置的参数渲染双色调面板。

WORD GetState( OBJ_HEADER *pObj, WORD stateBits)

返回控件的状态位的当前值。

void SetState( OBJ_HEADER *pObj, WORD stateBits)

设置控件的状态位。

void ClrState( OBJ_HEADER *pObj, WORD stateBits)

清零控件的状态位。

void GOLMsg(GOL_MSG *pMsg) 处理GOL_MSG,并检查哪个控件受该消息影响。对于每个受影响的控件,将会调用GOLMsgCallback(),这使应用程序可以定制对消息的反应,以及取消或调用对消息的默认反应。

WORD GOLMsgCallback( WORD objMsg, OBJ_HEADER * pObj, GOL_MSG * pMsg)

在应用程序中实现的函数。函数由GOLMsg()调用,使应用程序可以实现自己的消息解释方式,以及定制控件行为。

GOL_SCHEME * GOLCreateScheme() 使用应用程序定义的样式,或使用图形库指定的默认样式,创建样式方案对象。

void GOLSetScheme( OBJ_HEADER *pObj, GOL_SCHEME *pScheme)

设置要用于控件的GOL_SCHEME。

GOL_SCHEME *GOLSetScheme( OBJ_HEADER *pObj)

获取控件所使用的GOL_SCHEME。

GOL_SCHEME *GOLGetSchemeDefault() 返回调用GOLInit()时创建的默认方案的指针。

GFX_COLOR RGBConvert( WORD red, WORD green, WORD blue)

将8-8-8 RGB颜色数据转换为由COLOR_DEPTH设置的颜色格式。

Microchip图形库快速参考指南

Page 10: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

10 图形快速参考指南

控件API模拟时钟 按钮 图表 图表2 图表3

图形配置:USE_ANALOGCLOCK 图形配置: USE_BUTTON USE_BUTTON_MULTI_LINE

图形配置:USE_CHART void ChHideSeries( CHART *pObj, WORD seriesNum)

XCHAR *ChGetSampleLabel( CHART *pObj)

ANALOGCLOCK * AcCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, SHORT hour, SHORT minute, SHORT radius, BOOL sechand, WORD state, void * pBitmap, GOL_SCHEME * pScheme)

BUTTON * BtnCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, SHORT radius, WORD state, void * pBitmap, XCHAR * pText, GOL_SCHEME * pScheme)

CHART * ChCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, DATASERIES * pData, CHARTPARAM * pParam, GOL_SCHEME * pScheme)

void ChGetShowSeriesCount(CHART * pObj) WORD ChGetSampleStart( CHART *pObj)

WORD AcDraw(void * pObj) WORD BtnDraw(void * pObj) WORD ChDraw(void * pObj) WORD ChGetShowSeriesStatus(CHART * pObj) WORD ChGetSampleEnd( CHART *pObj)

WORD AcHandsDraw( ANALOGCLOCK * pObj, SHORT hand, SHORT thickness, WORD color, void * pBitmap)

XCHAR *BtnGetText(BUTTON *pObj) XCHAR *ChGetTitle(CHART *pObj) void ChSetValueLabel( CHART* pObj, XCHAR* pValueLabel)

void ChSetPercentRange( CHART * pObj, WORD min, WORD max)

void AcSetHour( ANALOGCLOCK * pObj, SHORT hour)

void BtnSetText( BUTTON *pObj, XCHAR *pString)

void ChSetTitle( CHART *pObj, XCHAR *pTitle)

XCHAR *ChGetValueLabel( CHART* pObj)

WORD ChGetPercentRange(CHART *pObj)

void AcSetMinute( ANALOGCLOCK * pObj, SHORT minute)

void *BtnGetBitmap(BUTTON *pObj) void ChSetTitleFont( CHART *pObj, void *pFont)

WORD ChGetValueMax(CHART *pObj) void ChSetSampleRange( CHART * pObj, WORD start, WORD end)

void AcSetSecond( ANALOGCLOCK * pObj, SHORT second)

void BtnSetBitmap( BUTTON *pObj, void *pBitmap)

XCHAR *ChGetTitleFont(CHART *pObj) WORD ChGetValueMin(CHART *pObj) WORD ChGetSampleRange(CHART *pObj)

typedef struct { OBJ_HEADER hdr; SHORT radius; SHORT centerx; SHORT centery; SHORT valueS; SHORT prev_valueS; SHORT valueM; SHORT prev_valueM; SHORT valueH; SHORT prev_valueH; void * pBitmap;} ANALOGCLOCK;

void BtnMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)

DATASERIES *ChAddDataSeries( CHART *pObj, WORD nSamples, WORD *pData XCHAR *pNames)

void ChSetValueRange( CHART * pObj, WORD min, WORD max)

WORD ChGetPercentMax(CHART *pObj)

WORD BtnTranslateMsg( void * pObj, GOL_MSG * pMsg)

void ChRemoveDataSeries( CHART * pObj, WORD number)

WORD ChGetValueRange(CHART* pObj) WORD ChGetPercentMin(CHART *pObj)

typedef struct { OBJ_HEADER hdr; SHORT radius; SHORT textWidth; SHORT textHeight; XCHAR * pText; void * pBitmap;} BUTTON;

void ChShowSeries( CHART *pCh, WORD seriesNum)

void ChSetSampleLabel( CHART *pObj, XCHAR *pXLabel)

void ChSetColorTable( CHART* pObj, GFX_COLOR *pColorArray)

Microchip图形库快速参考指南

Page 11: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

图形快速参考指南 11

控件API(续)

图表4 圆表盘 复选框 数字仪表 编辑框

GFX_COLOR *ChGetColorTable( CHART* pObj)

图形配置:USE_ROUNDDIAL 图形配置:USE_CHECKBOX 图形配置:USE_DIGITALMETER 图形配置:USE_EDITBOX

void *ChGetAxisLabelFont(CHART *pObj) ROUNDDIAL * RdiaCreate( WORD ID, SHORT x, SHORT y, SHORT radius, WORD state, SHORT res, SHORT value, SHORT max, GOL_SCHEME * pScheme)

CHECKBOX * CbCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, XCHAR * pText, GOL_SCHEME * pScheme)

DIGITALMETER * DmCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, DWORD Value, BYTE NoOfDigits, BYTE DotPos, GOL_SCHEME * pScheme)

EDITBOX * EbCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, XCHAR * pText, WORD charMax, GOL_SCHEME * pScheme)

void ChSetAxisLabelFont( CHART *pObj, void* pFont)

WORD RdiaDraw(void * pObj) WORD CbDraw(void * pObj) WORD DmDraw(void * pObj) WORD EbDraw(void * pObj)

void *ChGetGridLabelFont(CHART *pObj) void RdiaIncVal(ROUNDDIAL *pObj) XCHAR *CbGetText(CHECKBOX pObj) WORD DmGetValue(DIGITALMETER *pObj) XCHAR *EbGetText(EDITBOX pObj)

void ChSetGridLabelFont( CHART *pObj, void* pFont)

void RdiaDecVal(ROUNDDIAL *pObj) void CbSetText( CHECKBOX pObj, XCHAR *pText)

void DmSetValue( DIGITALMETER *pObj, WORD value)

void EbSetText( EDITBOX pObj, XCHAR *pText)

void ChFreeDataSeries( void * pObj)

WORD RdiaGetVal(ROUNDDIAL *pObj) void CbMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)

void DmIncVal( DIGITALMETER *pObj, WORD deltaValue)

void EbAddChar( EDITBOX * pObj, XCHAR ch)

WORD ChTranslateMsg( void * pObj, GOL_MSG * pMsg)

void RdiaSetVal(ROUNDDIAL *pObj, WORD value) WORD CbTranslateMsg( void * pObj, GOL_MSG * pMsg)

void DmDecVal( DIGITALMETER *pObj, WORD deltaValue)

void EbDeleteChar(EDITBOX * pObj)

typedef struct { OBJ_HEADER hdr; CHARTPARAM prm; DATASERIES * pChData;} CHART;

void RdiaMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)

typedef struct { OBJ_HEADER hdr; SHORT textHeight; XCHAR * pText;} CHECKBOX;

WORD DmTranslateMsg( void * pObj, GOL_MSG * pMsg)

void EbMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)

typedef struct { XCHAR * pSData; WORD samples; BYTE show; WORD * pData; void * pNextData;} DATASERIES;

WORD RdiaTranslateMsg( void * pObj, GOL_MSG * pMsg)

typedef struct { OBJ_HEADER hdr; SHORT textHeight; DWORD Cvalue; DWORD Pvalue; BYTE NoOfDigits; BYTE DotPos;} DIGITALMETER;

WORD EbTranslateMsg( void * pObj, GOL_MSG * pMsg)

typedef struct { XCHAR * pTitle; XCHAR * pSmplLabel; XCHAR * pValLabel; SHORT seriesCount; WORD smplStart; WORD smplEnd; WORD valMax; WORD valMin; WORD perMax; WORD perMin; WORD * pColor; void * pTitleFont; void * pAxisLabelsFont; void * pGridLabelsFont;} CHARTPARAM;

typedef struct { OBJ_HEADER hdr; SHORT xCenter; SHORT yCenter; SHORT radius; SHORT value; WORD max; WORD res; SHORT curr_xPos; SHORT curr_yPos; SHORT new_xPos; SHORT new_yPos; SHORT vAngle;} ROUNDDIAL;

typedef struct { OBJ_HEADER hdr; SHORT textHeight; XCHAR * pBuffer; WORD charMax; WORD length;} EDITBOX;

Microchip图形库快速参考指南

Page 12: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

12 图形快速参考指南

控件API(续)

网格 网格2 分组框 列表框 列表框2图形配置:USE_GRID void GridSetFocus(

GRID * pObj, SHORT column, SHORT row)

图形配置:USE_GROUPBOX 图形配置:USE_LISTBOX WORD LbGetVisibleCount(LISTBOX *pObj)

GRID * GridCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, SHORT numColumns, SHORT numRows, SHORT cellWidth, SHORT cellHeight, GOL_SCHEME * pScheme)

void GridMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)

GROUPBOX * GbCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, XCHAR * pText, GOL_SCHEME * pScheme)

LISTBOX * LbCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, XCHAR * pText, GOL_SCHEME * pScheme)

void LbClrtSel(LISTBOX pObj, LISTITEM *pItem)

WORD GridDraw(void * pObj) WORD GridTranslateMsg( void * pObj, GOL_MSG * pMsg)

WORD GbDraw(void * pObj) WORD LbDraw(void * pObj) void LbSetBitmap( LISTITEM *pItem, void *pBtmap)

void GridClearCellState( GRID * pObj, SHORT column, SHORT row, WORD state)

typedef struct { OBJ_HEADER hdr; SHORT numColumns; SHORT numRows; SHORT cellHeight; SHORT cellWidth; SHORT focusX; SHORT focusY; GRIDITEM * gridObjects;} GRID;

XCHAR *GbGetText(GROUPBOX *pObj) LISTITEM *LbGetItemList(LISTBOX *pObj) void *LbGetBitmap(LISTITEM *pItem)

WORD GridGetFocusX(GRID *pObj) typedef struct { void * data; WORD status;} GRIDITEM;

void GbSetText( GROUPBOX *pObj, XCHAR * pText)

LISTITEM * LbAddItem( LISTBOX * pObj, LISTITEM * pPrevItem, XCHAR * pText, void * pBitmap, WORD status, WORD data)

void LbDelItemsList(void * pObj)

WORD GridGetFocusY(GRID *pObj) WORD GbTranslateMsg( void * pObj, GOL_MSG * pMsg)

void LbDelItem( LISTBOX * pObj, LISTITEM * pItem)

void LbMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)

void GridFreeItems(void * pObj) typedef struct { OBJ_HEADER hdr; SHORT textWidth; SHORT textHeight; XCHAR * pText;} GROUPBOX;

void LbChangeSel( LISTBOX * pObj, LISTITEM * pItem)

WORD LbTranslateMsg( void * pObj, GOL_MSG * pMsg)

void * GridGetCell( GRID * pObj, SHORT column, SHORT row, WORD * cellType)

void LbSetSel( LISTBOX *pObj, LISTITEM *pItem)

typedef struct { OBJ_HEADER hdr; LISTITEM * pItemList; LISTITEM * pFocusItem; WORD itemsNumber; SHORT scrollY; SHORT textHeight;} LISTBOX;

WORD GridSetCell( GRID * pObj, SHORT column, SHORT row, WORD state, void * data)

LISTITEM * LbGetSel( LISTBOX * pObj, LISTITEM * pFromItem)

typedef struct { void * pPrevItem; void * pNextItem; WORD status; XCHAR * pText; void * pBitmap; WORD data;} LISTITEM;

void GridSetCellState( GRID * pObj, SHORT column, SHORT row, WORD state)

SHORT LbGetFocusedItem(LISTBOX * pObj)

void LbSetFocusedItem( LISTBOX * pObj, SHORT index)WORD LbGetCount(LISTBOX pObj)

Microchip图形库快速参考指南

Page 13: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

图形快速参考指南 13

控件API(续)

仪表 图片控件 进度条 单选按钮

图形配置:USE_METER 图形配置:USE_PICTURE 图形配置:USE_PROGRESSBAR 图形配置:USE_RADIOBUTTON

METER * MtrCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, SHORT value, SHORT minValue, SHORT maxValue, void * pTitleFont, void * pValueFont, XCHAR * pText, GOL_SCHEME * pScheme)

PICTURE * PictCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, char scale, void * pBitmap, GOL_SCHEME * pScheme)

PROGRESSBAR * PbCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, WORD pos, WORD range, GOL_SCHEME * pScheme)

RADIOBUTTON * RbCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, XCHAR * pText, GOL_SCHEME * pScheme)

WORD MtrDraw(void * pObj) WORD PictDraw(void * pObj) WORD PbDraw(void * pObj) WORD RbDraw(void * pObj)

void MtrSetVal( METER * pObj, SHORT newVal)

void PictSetBitmap( PICTURE *pObj, void *pBtmap)

void PbSetRange( PROGRESSBAR * pObj, WORD range)

WORD RbGetCheck(RADIOBUTTON * pObj)

WORD MtrGetVal(METER *pObj) void *PictSetBitmap(PICTURE *pObj) WORD PbGetRange( PROGRESSBAR * pObj)

void RbSetCheck( RADIOBUTTON * pObj, WORD ID)

void MtrDecVal( METER *pObj, WORD deltaValue)

WORD PictGetScale(PICTURE *pObj) void PbSetPos( PROGRESSBAR * pObj, WORD position)

XCHAR *RbGetText(RADIOBUTTON * pObj)

void MtrIncVal( METER *pObj, WORD deltaValue)

void PictSetScale( PICTURE *pObj, WORD scale)

WORD PbGetPos( PROGRESSBAR * pObj)

void RbSetText( RADIOBUTTON * pObj XCHAR *pText)

void MtrSetScaleColors( METER *pObj, WORD arc1, WORD arc2, WORD arc3, WORD arc4, WORD arc5, WORD arc6)

WORD PictTranslateMsg( void * pObj, GOL_MSG * pMsg)

WORD PbTranslateMsg( PROGRESSBAR * pObj, GOL_MSG * pMsg)

void RbMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)

void MtrSetTitleFont( METER *pMtr, void *pFont)

typedef struct { OBJ_HEADER hdr; char scale; void * pBitmap;} PICTURE;

typedef struct { OBJ_HEADER hdr; WORD pos; WORD prevPos; WORD range;} PROGRESSBAR;

WORD RbTranslateMsg( void * pObj, GOL_MSG * pMsg)

void MtrSetValueFont( METER *pMtr, void *pFont)

typedef struct { OBJ_HEADER hdr; OBJ_HEADER * pHead; OBJ_HEADER * pNext; SHORT textHeight; XCHAR * pText;} RADIOBUTTON;

void MtrMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)

WORD MtrTranslateMsg( void * pObj, GOL_MSG * pMsg)

typedef struct { OBJ_HEADER hdr; XCHAR * pText; SHORT value; SHORT minValue; SHORT maxValue; SHORT xCenter; SHORT yCenter; SHORT radius; SHORT xPos; SHORT yPos; WORD arcColor6; WORD arcColor5; WORD arcColor4; WORD arcColor3; WORD arcColor2; WORD arcColor1; void * pTitleFont; void * pValueFont;} METER;

Microchip图形库快速参考指南

Page 14: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

14 图形快速参考指南

控件API(续)

滑块/滚动条 静态文本 文本输入 文本输入2 窗口

图形配置:USE_SLIDER 图形配置:USE_STATICTEXT 图形配置:USE_TEXTENTRY void TeDelKeyMembers(void * pObj) 图形配置:USE_WINDOWSLIDER * SldCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, WORD range, WORD page, WORD pos, GOL_SCHEME * pScheme)

STATICTEXT * StCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, XCHAR * pText, GOL_SCHEME * pScheme)

TEXTENTRY * TeCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, SHORT horizontalKeys, SHORT verticalKeys, XCHAR * pText[], void * pBuffer, WORD bufferLength, void * pDisplayFont, GOL_SCHEME * pScheme)

BOOL TeSetKeyText( TEXTENTRY * pObj, WORD index, XCHAR * pText)

WINDOW * WndCreate( WORD ID, SHORT left, SHORT top, SHORT right, SHORT bottom, WORD state, void * pBitmap, XCHAR * pText, GOL_SCHEME * pScheme)

WORD SldDraw(void * pObj) WORD StDraw(void * pObj) WORD TeDraw(void * pObj) void TeMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)

WORD WndDraw(void * pObj)

void SldSetPage( SLIDER * pObj, WORD page)

XCHAR *StGetText(STATICTEXT* pObj) XCHAR * TeGetBuffer(TEXTENTRY *pObj) WORD TeTranslateMsg( void * pObj, GOL_MSG * pMsg)

XCHAR *WndGetText(WINDOW* pObj)

WORD SldGetPage(SLIDER * pObj) void StGetText( STATICTEXT* pObj XCHAR * pText)

void TeSetBuffer( TEXTENTRY *pObj XCHAR * pText)

typedef struct { OBJ_HEADER hdr; SHORT horizontalKeys; SHORT verticalKeys; XCHAR * pTeOutput; WORD CurrentLength; WORD outputLenMax; KEYMEMBER * pActiveKey; KEYMEMBER * pHeadOfList; void * pDisplayFont;} TEXTENTRY;

void *WndSetText( WINDOW* pObj XCHAR * pText)

void SldSetPos( SLIDER * pObj, WORD position)

WORD StTranslateMsg( void * pObj, GOL_MSG * pMsg)

void TeClearBuffer(TEXTENTRY *pOb) typedef struct { SHORT left; SHORT top; SHORT right; SHORT bottom; SHORT index; WORD state; BOOL update; WORD command; XCHAR * pKeyName; SHORT textWidth; SHORT textHeight; void * pNextKey;} KEYMEMBER;

WORD WndTranslateMsg( void * pObj, GOL_MSG * pMsg)

WORD SldGetPos(SLIDER * pObj) typedef struct { OBJ_HEADER hdr; SHORT textHeight; XCHAR * pText;} STATICTEXT;

WORD TeGetKeyCommand( TEXTENTRY * pObj, WORD index)

typedef struct { OBJ_HEADER hdr; SHORT textHeight; XCHAR * pText; void * pBitmap;} WINDOW;

void SldSetRange( SLIDER * pObj, WORD range)

BOOL TeSetKeyCommand( TEXTENTRY * pObj, WORD index WORD command)

WORD SldGetRange(SLIDER * pObj) KEYMEMBER * TeCreateKeyMembers( TEXTENTRY * pObj, XCHAR * pText[ ])

void SldIncPos(SLIDER * pObj) void TeAddChar(TEXTENTRY * pObj)void SldDeccPos(SLIDER * pObj) BOOL TeIsKeyPressed(

TEXTENTRY * pObj, WORD index)

void SldMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)

void TeSpaceChar(TEXTENTRY * pObj)

WORD SldTranslateMsg( void * pObj, GOL_MSG * pMsg)typedef struct { OBJ_HEADER hdr; WORD currPos; WORD prevPos; WORD range; WORD pos; WORD page; WORD thWidth; WORD thHeight;} SLIDER;void SldMsgDefault( WORD translatedMsg, void * pObj, GOL_MSG * pMsg)

void TeSpaceChar(TEXTENTRY * pObj)

typedef struct { OBJ_HEADER hdr; WORD currPos; WORD prevPos; WORD range; WORD pos; WORD page; WORD thWidth; WORD thHeight;} SLIDER;

Microchip图形库快速参考指南

Page 15: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

图形快速参考指南 15

Page 16: 图形快速参考指南 - Microchip Technologyww1.microchip.com/downloads/cn/DeviceDoc/01394a_cn.pdf图形快速参考指南 3 PIC32低成本无控制器图形显示: 32位性能、灵活性、集成

信息可能变更,恕不另行通知。Microchip的名称和徽标组合、Microchip徽标、dsPIC、MPLAB及PIC均为Microchip Technology Incorporated在美国和其他国家或地区的注册商标。PICDEM、PICtail和mTouch均为Microchip Technology Incorporated在美国和其他国家或地区的商标。在此提及的所有其他商标均为各持有公司所有。© 2012,Microchip Technology Incorporated。版权所有。中国印制。03/12DS01394A_CN

*DS01394A_CN*

Microchip Technology Inc.2355 W. Chandler Blvd.

Chandler, AZ 85224-6199

www.microchip.com

支持Microchip致力于帮助客户更快更高效地开发产品。我们拥有一个覆盖全球的现场应用工程师和技术支持网络,随时准备提供产品和系统协助。此外,www.microchip.com 上提供了以下服务领域:

■ 技术支持链接提供快速获得问题解答的方法: http://www.microchip.com/support

■ 样片链接提供任何Microchip器件的评估样片: http://sample.microchip.com

■ 论坛链接提供访问知识库和互助信息:

http://forum.microchip.com

■ 购买链接提供Microchip各销售渠道合作伙伴的联系方式:www.microchip.com/sales

培训如果您希望接受额外的培训,Microchip可以助您一臂之力。我们一直在扩充我们的技术培训方式,不仅在各地举行一系列不断丰富的教程和有深度的课程,还提供大量有价值的在线资源,以供您随时使用。

■ 区域培训中心:www.microchip.com/rtc

■ MASTERs技术精英年会:www.microchip.com/masters

■ 全球研讨会:www.microchip.com/seminars

■ eLearning:www.microchip.com/webseminars

■ 代理商和第三方合作伙伴的资源: www.microchip.com/training

美洲亚特兰大Tel: 1-678-957-9614波士顿Tel: 1-774-760-0087芝加哥Tel: 1-630-285-0071克里夫兰Tel: 1-216-447-0464达拉斯Tel: 1-972-818-7423底特律Tel: 1-248-538-2250印第安纳波利斯Tel: 1-317-773-8323洛杉矶Tel: 1-949-462-9523圣克拉拉Tel: 1-408-961-6444多伦多Tel: 1-905-673-0699

欧洲奥地利Tel: 43-7242-2244-39丹麦Tel: 45-4450-2828法国Tel: 33-1-69-53-63-20德国Tel: 49-89-627-144-0意大利Tel: 39-0331-742611荷兰Tel: 31-416-690399西班牙Tel: 34-91-708-08-90英国Tel: 44-118-921-5869

亚太地区澳大利亚 - 悉尼Tel: 61-2-9868-6733中国 - 北京Tel: 86-10-8569-7000中国 - 成都Tel: 86-28-8665-5511中国 - 重庆Tel: 86-23-8980-9588中国 - 杭州Tel: 86-571-2819-3187中国 - 香港特别行政区Tel: 852-2401-1200中国 - 南京Tel: 86-25-8473-2460中国 - 青岛Tel: 86-532-8502-7355中国 - 上海Tel: 86-21-5407-5533中国 - 沈阳Tel: 86-24-2334-2829中国 - 深圳Tel: 86-755-8203-2660中国 - 武汉Tel: 86-27-5980-5300中国 - 厦门Tel: 86-592-2388138中国 - 西安Tel: 86-29-8833-7252中国 - 珠海Tel: 86-756-3210040

全球销售和服务网点

亚太地区台湾地区 - 新竹Tel: 886-3-5778-366台湾地区 - 高雄Tel: 886-7-536-4818台湾地区 - 台北Tel: 886-2-2500-6610印度 - 班加罗尔Tel: 91-80-3090-4444印度 - 新德里Tel: 91-11-4160-8631印度 - 浦那Tel: 91-20-2566-1512日本 - 大阪Tel: 81-66-152-7160日本 - 横滨Tel: 81-45-471-6166韩国 - 大邱Tel: 82-53-744-4301韩国 - 首尔Tel: 82-2-554-7200马来西亚 - 吉隆坡Tel: 60-3-6201-9857马来西亚 - 槟榔屿Tel: 60-4-227-8870菲律宾 - 马尼拉Tel: 63-2-634-9065新加坡Tel: 65-6334-8870泰国 - 曼谷Tel: 66-2-694-135111/29/11

全球技术支持:http://www.microchip.com/support 国内技术支持热线:800-820-6247或400-820-6247

国内技术支持:[email protected] 国内免费microchipDIRECT支持热线:400-820-5079