ESP32-TFT_eSPI.h文件的使用心得(包含画图相关函数)

目录


前言

环境:arduino

芯片:ESP32


一、Arduino中的使用

#include <TFT_eSPI.h>
TFT_eSPI tft = TFT_eSPI();

      tft.init();//初始化
      tft.setRotation(0);                 //屏幕旋转方向
      tft.fillScreen(TFT_BLACK);//底色
      tft.setTextSize(2);                 //字体大小
      tft.setTextColor(TFT_DARKGREEN);    //文字颜色
      // sprite.setSwapBytes(true);//决定字体是RGB还是BGR
      tft.setCursor(10,10);               //文字位置
      tft.loadFont(font20);

  tft.println(tempDisplay1);//打印一个变量
  tft.setCursor(170,test_12-=40);               //文字位置 
  tft.println("后天");//打印汉字

  String tempDisplay2 = String(day[2].wendu_H) + "/" + String(day[2].wendu_L);  
  tft.println(tempDisplay2);//打印字符串,效果是10/01,十点零一分

 1.需要包含TFT_eSPI.h的文件库

2.声明下TFT_eSPI函数为tft

3.一些初始化的内容

4.关于文字的大小和字体,如果没有变化,代码执行一次就可以了,如果需要变更代码,则每次都需要重新声明想要的字体和大小.

5.打印汉字

6.打印带斜杠的字符串

一定要注意:不要打错字体.包括大小写和顺序.

一定要注意:不要打错字体.包括大小写和顺序.

一定要注意:不要打错字体.包括大小写和顺序.

谨记谨记谨记!!!

二、TFT_eSPI.h文件

1.Graphics drawing相关函数(画图)

 void     fillScreen(uint32_t color),
           drawRect(int32_t x, int32_t y, int32_t w, int32_t h, uint32_t color),
           drawRoundRect(int32_t x, int32_t y, int32_t w, int32_t h, int32_t radius, uint32_t color),
           fillRoundRect(int32_t x, int32_t y, int32_t w, int32_t h, int32_t radius, uint32_t color);
  void     fillRectVGradient(int16_t x, int16_t y, int16_t w, int16_t h, uint32_t color1, uint32_t color2);
  void     fillRectHGradient(int16_t x, int16_t y, int16_t w, int16_t h, uint32_t color1, uint32_t color2);
  void     drawCircle(int32_t x, int32_t y, int32_t r, uint32_t color),
           fillCircle(int32_t x, int32_t y, int32_t r, uint32_t color),
           drawEllipse(int16_t x, int16_t y, int32_t rx, int32_t ry, uint16_t color),
           fillEllipse(int16_t x, int16_t y, int32_t rx, int32_t ry, uint16_t color),
           drawTriangle(int32_t x1,int32_t y1, int32_t x2,int32_t y2, int32_t x3,int32_t y3, uint32_t color),
           fillTriangle(int32_t x1,int32_t y1, int32_t x2,int32_t y2, int32_t x3,int32_t y3, uint32_t color);

fillScreen:填充整个屏幕,参数是颜色

drawRect:画一个矩形,参数:(起点的X,Y,宽,高,颜色)(线宽默认一个像素)

drawRoundRect:画一个圆角的矩形,参数:(起点的X,Y,宽,高,角的半径,颜色)(线宽默认一个像素)

fillRoundRect:画一个圆角的矩形,将里面填充满,参数和上面一样,不过是里面全部填满

fillRectVGradient和fillRectHGradient:渐变色,从上到下和从左到右(理论,没有验证)

drawCircle:画一个圆,参数(圆心的X,Y,半径,颜色)

fillCircle:填充一个圆,参数同上,不过是填充满

drawEllipse:画一个椭圆,参数(圆心的X,Y半径的X,Y,颜色)
fillEllipse:填充一个椭圆,参数同上,不过是填充满

drawTriangle:画一个三角形,参数(三个点的X,Y,颜色)

fillTriangle:填充一个三角形


总结

TFT_eSPI是一个功能很强大的库,只介绍了其中关于画图相关的函数,其他的我有时间再进行介绍

### 关于 TFT_eSPI 库功能说明 #### 文本显示设置 对于在TFT屏幕上精确控制文本的显示位置,`setCursor`函数非常有用。该函数允许指定起始绘制文本的确切坐标(x,y),其中x表示水平方向的位置而y则对应垂直方向的位置[^3]。 ```cpp tft.setCursor(int16_t x, int16_t y); ``` 此命令之后紧接着调用`tft.print()`或`tft.println()`即可实现从设定好的光标处打印字符串到显示屏上。 #### 图形绘制操作 当涉及到图形元素如椭圆时,有两个主要的方法可供选择: - `drawEllipse`: 绘制未填充边框的椭圆形轮廓; - `fillEllipse`: 创建实心即内部被完全着色覆盖的椭圆形状; 这两个方法都需要提供四个参数来定义图像特性——中心点横纵坐标的值以及沿各自轴向延伸距离(宽度与高度),最后一个是用于渲染的颜色编码[^4]。 ```cpp // 画一个空心椭圆 tft.drawEllipse(centerX, centerY, radiusX, radiusY, color); // 填充一个实心椭圆 tft.fillEllipse(centerX, centerY, radiusX, radiusY, fillColor); ``` 需要注意的是,在ESP32平台上利用这些绘图指令前应当先初始化好相应的硬件接口并导入必要的头文件[^1]。 #### 性能优化建议 尽管TFT_eSPI是一个强大且易于使用的库,但在某些情况下可能不是最优的选择。如果项目特别关注运行效率,则可以考虑其他替代方案比如arduino_gfx,并且应避免频繁创建和销毁大型对象实例特别是像String这样的类,因为它们可能会占用较多资源从而影响整体表现[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值