-
Notifications
You must be signed in to change notification settings - Fork 2
中文WIKI
zhongdatao edited this page Mar 4, 2020
·
15 revisions
- C++/Aduino示例教程
-
参考
- begin
- drawPixel
- fillScreen
- drawFastVLine
- drawFastHLine
- drawRect
- fillRect
- drawCircle
- drawCircleHelper
- fillCircle
- fillCircleHelper
- drawTriangle
- fillTriangle
- drawRoundRect
- fillRoundRect
- drawBitmap
- drawXBitmap
- drawGrayscaleBitmap
- drawRGBBitmap
- drawChar
- getTextBounds
- getRotation
- getCursorX
- getCursorY
- setTextSize
- setFont
- setRotation
- setCursor
- setTextColor
- setTextWrap
- width
- hight
- cp437
#include "DFRobot_GDL.h"
#define TFT_DC 2
#define TFT_CS 3
#define TFT_RST 4
DFRobot_ST7789_240x240_HW_SPI screen(/*dc=*/TFT_DC,/*cs=*/TFT_CS,/*rst=*/TFT_RST);
void setup() {
Serial.begin(115200);
screen.begin();
}
void loop(){
///设置字体字号为4 字号范围1-4
screen.setTextSize(2);
//设置屏幕颜色
screen.fillScreen(COLOR_RGB565_BLACK);
screen.setFont(&FreeMono12pt7b);//设置字体为FreeMono12pt7b
screen.setCursor(/*x=*/10,/*y=*/120);
//设置文本颜色
screen.setTextColor(COLOR_RGB565_LGRAY);
//设置文本自动换行模式,true=文本自动换行,false=不自动换行
screen.setTextWrap(true);
screen.print("HelloWorld!");
delay(500);
}
-
说明: 在
ino
文件中,我们针对不同IC和分辨率的屏幕,我们都有不同的构造函数;不同MCU定义了不同的引脚。用户直接调用即可。所有其他参数决定了显示器的接线。
- C原型:
void DFRobot_GDL::begin()
- 说明: 初始化屏幕并给指定传输速率。
- 参数: 无
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::drawPixel(int16_t x, int16_t y, uint16_t color)
-
说明: 在位置
(x, y)
绘制一个像素点。 -
参数:
-
x
:像素点的x坐标位置。 -
y
:像素点的y坐标位置。 -
color
:像素点的颜色,该颜色为RGB565格式。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::fillScreen(uint16_t color)
-
说明: 这是一个刷屏函数;
color
为RGB565格式的颜色 -
参数:
-
color
:填充屏幕的颜色,该颜色为RGB565格式。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color)
-
说明: 快速垂直划线函数;在
(x, y)
为起点,画一个高度为h
的直线 -
参数:
-
x
:垂直线的起始点的x坐标位置。 -
y
:垂直线的起始点的y坐标位置。 -
h
:垂直线的高度。 -
color
:垂直线的颜色,该颜色为RGB565格式。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::drawFastHLine(int16_t x, int16_t y, int16_t h, uint16_t color)
-
说明: 快速垂直划线函数;在
(x, y)
为起点,画一个长度为h
的直线 -
参数:
-
x
:水平线的起始点的x坐标位置。 -
y
:水平线的起始点的y坐标位置。 -
h
:水平线的高度。 -
color
:水平线的颜色,该颜色为RGB565格式。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)
-
说明: 在
(x, y)
位置(左上边缘)绘制一个空心矩形,w
和h
是矩形的长和宽。 -
参数:
-
x
:矩形的起始点的x坐标位置。 -
y
:矩形的起始点的y坐标位置。 -
w
:矩形的宽度。 -
h
:矩形的高度。 -
color
:矩形的颜色,该颜色为RGB565格式。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)
-
说明: 在
(x, y)
位置(左上边缘)绘制一个实心矩形,w
和h
是矩形的长和宽。 -
参数:
-
x
:矩形的起始点的x坐标位置。 -
y
:矩形的起始点的y坐标位置。 -
w
:矩形的宽度。 -
h
:矩形的高度。 -
color
:矩形的颜色,该颜色为RGB565格式。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)
-
说明: 在位置
(x0, y0)
绘制一个半径为r
的空心圆。圆的直径为2*r+1
。color
可以使用指定的颜色进行绘制。 -
参数:
-
x0
,y0
:圆心的位置。 -
r
:定义圆的大小:Radus =r
。 -
color
:定义绘制颜色。
-
- 返回值: 无
- C++/Arduino原型:
void GDFRobot_GDL::drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,uint16_t color)
-
说明:
drawCircleHelper
在(x0, y0)
绘制一个半径为r
空心的四分之一圆,用于做圆形和圆角。cornername
是屏蔽位来实现圆的四分之一,可以进行多种组合。 -
参数:
-
x0
,y0
:圆心的位置。 -
r
:定义圆的大小:Radus =r
。 -
cornername
:屏蔽位#1或位#2以指示我们正在执行的圆的四分之一。 -
color
:圆的颜色,该颜色为RGB565格式。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)
-
说明: 在位置
(x0, y0)
绘制一个半径为r
的实心圆。圆的直径为2*r+1
。color
可以使用指定的颜色进行绘制。 -
参数:
-
x0
,y0
:圆心的位置。 -
r
:定义圆的大小:Radus =r
。 -
color
:圆的颜色,该颜色为RGB565格式。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,int16_t delta, uint16_t color)
-
说明:
fillCircleHelper
在(x0, y0)
绘制一个半径为r
实心的四分之一圆,用于做圆形和圆角。cornername
是屏蔽位来实现圆的四分之一,可以进行多种组合。 -
参数:
-
x0
,y0
:圆心的位置。 -
r
:定义圆的大小:Radus =r
。 -
cornername
:屏蔽位#1或位#2以指示我们正在执行的圆的四分之一。 -
color
:圆的颜色,该颜色为RGB565格式。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1,int16_t x2, int16_t y2, uint16_t color)
-
说明: 绘制一个空心三角形。参数为16位,
x0/y0
,x1/y1
,x2/y2
为三角形的3个点。 -
参数:
-
x0
:X0位置点。 -
y0
:y0位置点。 -
x1
:X1位置点。 -
y1
:y1位置点。 -
x2
:X2位置点。 -
y2
:y2位置点。 -
color
:三角形的颜色,该颜色为RGB565格式。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1,int16_t x2, int16_t y2, uint16_t color)
-
说明: 绘制一个实心三角形。参数为16位,
x0/y0
,x1/y1
,x2/y2
为三角形的3个点。 -
参数:
-
x0
:X0位置点。 -
y0
:y0位置点。 -
x1
:X1位置点。 -
y1
:y1位置点。 -
x2
:X2位置点。 -
y2
:y2位置点。 -
color
:角形的颜色,该颜色为RGB565格式。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,int16_t radius, uint16_t color)
-
说明: 从
x
/y
位置(左上边缘)开始绘制一个空心的圆角矩形。盒子/框架有宽w
和高h
。框的某些部分可以在显示边界之外。边缘具有半径r,要求w>=2*(r+1)
和h>=2*(r+1)
。如果w
或h
小于h>=2*(r+1)
,则函数自定义r。 -
参数:
-
x
:左上边缘的X位置。 -
y
:左上边缘的Y位置。 -
w
:矩形的宽度。 -
h
:矩形的高度。 -
r
:四个边缘的半径。 -
color
:圆角矩形的颜色,该颜色为RGB565格式。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,int16_t radius, uint16_t color)
-
说明: 从
x
/y
位置(左上边缘)开始绘制一个实心心的圆角矩形。盒子/框架有宽w
和高h
。框的某些部分可以在显示边界之外。边缘具有半径r,要求w>=2*(r+1)
和h>=2*(r+1)
。如果w
或h
小于h>=2*(r+1)
,则函数自定义r。 -
参数:
-
x
:左上边缘的X位置。 -
y
:左上边缘的Y位置。 -
w
:矩形的宽度。 -
h
:矩形的高度。 -
r
:四个边缘的半径。 -
color
:圆角矩形的颜色,该颜色为RGB565格式。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[],int16_t w, int16_t h, uint16_t color)
void DFRobot_GDL::drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[],int16_t w, int16_t h, uint16_t color, uint16_t bg)
void DFRobot_GDL::drawBitmap(int16_t x, int16_t y, uint8_t *bitmap,int16_t w, int16_t h, uint16_t color)
void DFRobot_GDL::drawBitmap(int16_t x, int16_t y, uint8_t *bitmap,int16_t w, int16_t h, uint16_t color, uint16_t bg)
-
说明:
drawBitmap
重载了多个函数。在指定的x
,y
位置(位图的左上角)绘制一个单色位图。位图的某些部分可能不在显示边界之内。位图由数组指定bitmap
或者是指向位图开始的指针。w
,h
为位图的高度和宽度;color
画16位5-6-5的单色图片颜色,bg
画16位5-6-5的背景颜色。 -
参数:
-
x
:X位置。 -
y
:Y位置。 -
bitmap
:位图数组或者是指向位图开始的指针。 -
w
:位图的宽度。 -
h
:位图的高度。 -
color
:画16位5-6-5的单色图片颜色。 -
bg
:画16位5-6-5的背景颜色。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::drawXBitmap(int16_t x, int16_t y, const uint8_t bitmap[],int16_t w, int16_t h, uint16_t color)
-
说明:
drawXBitmap
绘制progmemm
驻留的XBitMap文件(*.xbm)
,从GIMP
导出。从GIMP导出到*.xbm、重命名*.xbm到*.c并在编辑器中打开。C数组可以直接与此函数一起使用。该函数没有ram驻留版本;如果生成位图在RAM中,使用drawBitmap()定义的格式并调用它。在指定的x
,y
位置(位图的左上角)绘制一个单色位图。位图的某些部分可能不在显示边界之内。位图由数组指定bitmap
或。w
,h
为位图的高度和宽度;color
画16位5-6-5的单色图片颜色。 -
参数:
-
x
:X位置。 -
y
:Y位置。 -
bitmap
:位图数组。 -
w
:位图的宽度。 -
h
:位图的高度。 -
color
:绘制16位5-6-5的单色图片颜色。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::drawGrayscaleBitmap(int16_t x, int16_t y, const uint8_t bitmap[],int16_t w, int16_t h)
void DFRobot_GDL::drawGrayscaleBitmap(int16_t x, int16_t y, uint8_t *bitmap,int16_t w, int16_t h)
void DFRobot_GDL::drawGrayscaleBitmap(int16_t x, int16_t y,const uint8_t bitmap[], const uint8_t mask[],int16_t w, int16_t h)
void DFRobot_GDL::drawGrayscaleBitmap(int16_t x, int16_t y,uint8_t *bitmap, uint8_t *mask, int16_t w, int16_t h)
-
说明:
drawGrayscaleBitmap
重载了多个函数,它旨在指定的位置(x,y)绘制一个progmemeresident 8位图像(灰度)。 特别适用于8位显示设备,如IS31FL3731;不进行减色/展开。在指定的x
,y
位置(位图的左上角)绘制一个8位位图。位图的某些部分可能不在显示边界之内。位图由数组指定bitmap
或者是指向位图开始的指针;mask
是带掩码位图的字节数组。w
,h
为位图的高度和宽度。 -
参数:
-
x
:X位置。 -
y
:Y位置。 -
bitmap
:灰阶位图数组或者是指向灰阶位图开始的指针。 -
mask
:带掩码位图的字节数组。 -
w
:位图的宽度。 -
h
:位图的高度。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::drawRGBBitmap(int16_t x, int16_t y, const uint16_t bitmap[],int16_t w, int16_t h)
void DFRobot_GDL::drawRGBBitmap(int16_t x, int16_t y, uint16_t *bitmap,int16_t w, int16_t h)
void DFRobot_GDL::drawRGBBitmap(int16_t x, int16_t y,const uint16_t bitmap[], const uint8_t mask[],int16_t w, int16_t h)
void DFRobot_GDL::drawRGBBitmap(int16_t x, int16_t y,uint16_t *bitmap, uint8_t *mask, int16_t w, int16_t h)
-
说明:
drawRGBBitmap
重载了多个函数。在指定的x
,y
位置(位图的左上角)绘制ram驻留的16位图像(RGB 5/6/5);用于16位显示设备;未进行颜色还原。位图的某些部分可能不在显示边界之内。位图由数组指定bitmap
或者是指向位图开始的指针;mask
是带掩码位图的字节数组。w
,h
为位图的高度和宽度。 -
参数:
-
x
:X位置。 -
y
:Y位置。 -
bitmap
:位图数组或者是指向位图开始的指针。 -
mask
:是带掩码位图的字节数组。 -
w
:位图的宽度。 -
h
:位图的高度。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color,uint16_t bg, uint8_t size)
void DFRobot_GDL::drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color,uint16_t bg, uint8_t size_x,uint8_t size_y)
-
说明:
drawChar
旨在画一个字符,它也进行了重载。在指定的x
,y
位置(字符的左上角)绘制字符。size
为设置字体放大等级。size_z
和size_y
旨在自定义设置字体的长和宽的放大等级。 -
参数:
-
x
:X位置。 -
y
:Y位置。 -
c
:8位字符索引字符(类似于ascii)。 -
color
:绘制16位5-6-5的字符颜色 -
bg
:绘制16位5-6-5的背景颜色。 -
size
:字体放大等级(1-6级),1是“原始”大小。 -
size_z
:字体放大等级在x轴(1-6级),1是“原始”大小。 -
size_y
:字体放大等级在y轴(1-6级),1是“原始”大小。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::getTextBounds(const char *string, int16_t x, int16_t y,int16_t *x1, int16_t *y1, uint16_t *w, uint16_t *h)
void DFRobot_GDL::getTextBounds(const __FlashStringHelper *s, int16_t x, int16_t y,int16_t *x1, int16_t *y1, uint16_t *w, uint16_t *h)
void DFRobot_GDL::getTextBounds(const String &str, int16_t x, int16_t y,int16_t *x1, int16_t *y1, uint16_t *w, uint16_t *h)
-
说明:
getTextBounds
帮助程序,用于确定具有当前字体/大小的字符串的大小。传递字符串和光标位置,返回UL角和W,H。它也进行了重载。 -
参数:
-
string
:要测量的ascii字符串。 -
s
:要测量的闪存ascii字符串。 -
str
:测量ascii字符串(作为arduino字符串()类)。 -
x
:当前光标X。 -
y
:当前光标y。 -
x1
:边界X坐标,由函数设置。 -
y1
:边界y坐标,由函数设置。 -
w
:边界宽度,由函数设置。 -
h
:边界高度,由函数设置
-
- 返回值: 无
- C原型:
uint8_t getRotation(void)
-
说明:
getRotation
获取显示的旋转设置。用于确定当前的显示方向,0至3对应于4个基本旋转。 - 参数: 无
- 返回值: 0-3;对应于4个基本旋转。
参数 | 描述 |
---|---|
0 | 不旋转,横向 |
1 | 顺时针旋转90度 |
2 | 顺时针旋转180度 |
3 | 顺时针旋转270度 |
- C原型:
int16_t getCursorX(void)
-
说明:
getCursorX
获取文本光标X的位置。 - 参数: 无
- 返回值: 文本光标X的位置。
- C原型:
int16_t getCursorY(void)
-
说明:
getCursorY
获取文本光标Y的位置。 - 参数: 无
- 返回值: 文本光标Y的位置。
- C++/Arduino原型:
void DFRobot_GDL::setTextSize(uint8_t s)
void DFRobot_GDL::setTextSize(uint8_t sx, uint8_t sy)
-
说明:
setTextSize
旨设置文本“放大”大小。size
为设置字体放大等级;长和宽由函数设置。sx
和sy
旨在自定义设置字体的长和宽的放大等级。 -
参数:
-
s
:想要的文本大小。1是默认的6x8, 2是12x16, 3是18x24,等等。 -
sx
:sx所需的文本宽度放大水平在x轴。1是默认的。 -
sy
:sx所需的文本宽度放大水平在y轴。1是默认的。。
-
- 返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::setFont(const GFXfont *f = NULL)
-
说明:
setFont
旨当打印()时设置字体显示时,可以自定义或默认。size
为设置字体放大等级;长和宽由函数设置。sx
和sy
旨在自定义设置字体的长和宽的放大等级。 -
参数:
-
f
:字体结构体指针,指向GFXfont或gdl_Font_t。
-
-
返回值: 无
- C++/Arduino原型:
void DFRobot_GDL::setRotation(uint8_t r)
-
说明: 设置旋转方向,
r
为0,1,2,3有效。 -
参数:
-
r
:字体的旋转方向。
-
参数 | 描述 |
---|---|
0 | 不旋转,横向 |
1 | 顺时针旋转90度 |
2 | 顺时针旋转180度 |
3 | 顺时针旋转270度 |
- 返回值: 无
- C原型:
void setCursor(int16_t x, int16_t y)
-
说明:
setCursor
设置光标位置。 -
参数:
-
x
:X坐标(像素)。 -
y
:Y坐标(像素)。
-
-
返回值: 无
- C原型:
void setTextColor(uint16_t c)
void setTextColor(uint16_t c, uint16_t bg)
-
说明:
setTextColor
设置文本字体颜色与透明背景或者设置文本字体颜色自定义背景颜色。用于“透明”背景,背景和前景设置为相同的颜色,而不是使用单独的标志。 -
参数:
-
c
:设置16位5-6-5颜色绘制文本。 -
bg
:设置16位5-6-5颜色绘制背景/填充。
-
-
返回值: 无
- C原型:
void setTextWrap(uint16_t c)
-
说明:
setTextColor
设置文本对于屏幕宽度是否太长自动换行(否则剪切)。 -
参数:
-
c
:true
用于自动换行,false
用于剪裁。
-
-
返回值: 无
- C原型:
int16_t width(void)
-
说明:
width
获取显示宽度,要考虑当前旋转。 - 参数: 无
- 返回值: 宽度(以像素为单位)。
- C原型:
int16_t hight(void)
-
说明:
hight
获取显示长度,要考虑当前旋转。 - 参数: 无
- 返回值: 长度(以像素为单位)。
- C原型:
void cp437(boolean x=true)
-
说明:
setTextColor
启用(或禁用)代码页437兼容的字符集。在glcdfont.c中有一个最长时间的错误—1字符(#176,'light shade'块)丢失——这个去掉它后面每个字符的索引。但是很多代码都是用错误代码编写的字符索引。默认情况下,库使用原始文件“错误的”行为和旧的草图仍然有效。通过'true'来使用正确的CP437字符值在您的代码中。 -
参数:
-
c
:true = 启用(新行为),false = 禁用(旧行为)。
-
-
返回值: 无
DFRobot