当前位置:首页 > > 21ic电子网
[导读]出品21ic论坛 kk的回忆网站:bbs.21ic.com上次我们介绍了Wio终端的优异性能及简单的使用方法,这次我们看一下Wio终端的强大显示功能,并了解图形函数的使用方法。1.出色的显示功能在Wio终端上,最大的器件要数TFT显示屏了,其实在例程的数量上显示屏也是占...

出品 21ic论坛 kk的回忆
网站:bbs.21ic.com
上次我们介绍了Wio终端的优异性能及简单的使用方法,这次我们看一下Wio终端的强大显示功能,并了解图形函数的使用方法。
1.出色的显示功能
在Wio终端上,最大的器件要数TFT显示屏了,其实在例程的数量上显示屏也是占首位的,参见图1所示。
TinyML研究和学习的小精灵 之二图1 显示屏示例
下面我们就领略一下它的特色,看看在设计界面方面它能为我们带来哪些帮助。
1)字体丰富
Wio终端提供了丰富的字体支持,其字体显示效果如图2所示。
TinyML研究和学习的小精灵 之二图2字体效果
2)旋转显示
在界面设计上,因应用的需要往往会选择屏幕的使用方向,相应的显示内容也会产生改变。在手机的设计上,更是引入了力传感器,让手机能在旋转时来改变内容的方向,Wio终端也同样也随意的变换显示方向,参见图3所示。
TinyML研究和学习的小精灵 之二图3旋转显示
3)图表效果
统计图表是一种常用的文档形式,在Wio终端也也依然能够实现,如圆饼图及分栏表格等,其显示如图4所示。
TinyML研究和学习的小精灵 之二图4图表效果
4)时钟效果
在时间计时器的情况下,在Wio终端可以很容易地实现2种形式的电子时钟计时,其形式如图5所示。
TinyML研究和学习的小精灵 之二图5计时效果
5)复杂曲线
借助图形函数和强大计算能力的支持,结合曲线函数的使用,在Wio终端能绘制出复杂而美丽的曲线图形。
TinyML研究和学习的小精灵 之二图6曲线绘制
6)指针表盘
在工控领域,离不开各式各样的仪表,其中指针式仪表是一种表现起来直观,但又相对复杂的样式,在Wio终端它依然能完美地展现在入门眼前,见图7所示。
TinyML研究和学习的小精灵 之二图7表针指示
7)特效纷呈
除了以上常规表现形式,在Wio终端还能展现出在艺术片上所呈现特效制作,图8就是其达到效果。
TinyML研究和学习的小精灵 之二图8特效
8)其它效果
尽管介绍了怎么多,但依然有没能归类的显示效果,如图9是一个展示物体在屏幕边缘进行弹射的游戏效果,而图10则是通过计算所绘制出的图案。
TinyML研究和学习的小精灵 之二图9弹射游戏TinyML研究和学习的小精灵 之二图10图案绘制
有了这些例程为模板,再遇到同样的设计问题了,在此基础上只需添加上你的内容即可快速、轻松地解决。
2. 库的加载
要使用TFT屏的显示函数,需有相应库的支持,访问该链接Seeed_Arduino_LCD,即可从中下载到Seeed_Arduino_LCD-master.zip。
TinyML研究和学习的小精灵 之二图11 下载库文件
然后按图2和图3所示来添加下载的库文件,再按图4所示添加“Adafruit Zero DMA”。
TinyML研究和学习的小精灵 之二图12 添加库文件
TinyML研究和学习的小精灵 之二图13 选取添加内容
TinyML研究和学习的小精灵 之二图14 添加“Adafruit Zero DMA”
TinyML研究和学习的小精灵 之二图15 完成添加
在此,就完成了使用TFT屏显示的准备工作。
3. 显示屏与色彩模式
Wio终端所用的显示屏是一块2.4英寸的显示屏,以ILI9341为驱动芯片,屏幕的解析度为320*240像素点,坐标系统是按图16来设置,其中水平方向是x轴,垂直方向是y轴,左上是坐标的原点x=0,y=0。
TinyML研究和学习的小精灵 之二图16 坐标系统
显示屏采用8位和16位色彩模式来显示色彩,其中RGB3色所占的位宽各有不同。在8位色彩模式下,各位的含义为:
TinyML研究和学习的小精灵 之二
在16位色彩模式下,各位的含义为:
TinyML研究和学习的小精灵 之二
为了便于使用,常用的16位色彩定义为:
#define TFT_BLACK 0x0000     /* 0, 0, 0 */#define TFT_NAVY 0x000F      /* 0,0, 128 */#define TFT_DARKGREEN 0x03E0 /* 0, 128, 0 */#define TFT_DARKCYAN 0x03EF  /* 0,128, 128 */#define TFT_MAROON 0x7800   /* 128,0, 0 */#define TFT_PURPLE 0x780F     /* 128, 0, 128 */#define TFT_OLIVE 0x7BE0      /* 128,128, 0 */#define TFT_LIGHTGREY 0xC618  /*192, 192, 192 */#define TFT_DARKGREY 0x7BEF   /* 128, 128, 128 */#define TFT_BLUE 0x001F       /* 0, 0, 255 */#define TFT_GREEN 0x07E0      /* 0, 255, 0 */#define TFT_CYAN 0x07FF       /* 0,255, 255 */#define TFT_RED 0xF800        /* 255,0, 0 */#define TFT_MAGENTA 0xF81F   /* 255, 0, 255 */#define TFT_YELLOW 0xFFE0     /* 255,255, 0 */#define TFT_WHITE 0xFFFF      /* 255, 255, 255 */#define TFT_ORANGE 0xFDA0     /*255, 180, 0 */#define TFT_GREENYELLOW 0xB7E0 /* 180, 255, 0 */
在使用时,可以色彩名称来选用色彩。
4. 图形函数及用法
为了便于用户使用,在开发环境下提供了丰富的显示函数,掌握这些函数的使用可以起到事半功倍的效果。
1)屏幕填充函数
该函数的格式为:
fillScreen(uint32_t color);
使用该函数可用来清除屏幕,其使用形式为:tft.fillScreen(TFT_BLACK);
其中的“TFT_BLACK”,用于指定以黑色来清屏。
2)画点函数
该函数的格式为:drawPixel(int32_t x, int32_t y, uint32_t color);
其作用是在屏上的坐标点(x,y)上显示指定色彩为color的点,其多用于绘制各种曲线或图像。
此外,由于在函数中未提供对中文显示的支持,故用该函数还可以自行设计相应的中文显示函数。
其使用形式为:tft.drawPixel(4,7,TFT_BLACK);
3)画线函数
该函数的格式为:drawLine(int32_t x0, int32_t y0, int32_t x1, int32_t y1, uint32_t color);
其作用是在屏上从坐标点(x0,y0)到(x1,y1)以指定色彩为color绘制一条直线,其多用于绘制波形曲线。
其使用形式为:tft.drawLine(0,0,160,120,TFT_BLACK);
作为画线函数的特例,函数drawFastHLine()用于绘制水平线,而函数drawFastVLine ()用于绘制垂线,其函数格式为:
drawFastHLine(int32_t x, int32_t y, int32_t w, uint32_t color);
drawFastVLine(int32_t x, int32_t y, int32_t h, uint32_t color);
其中参数x,y是起点位置,而w和h是指线的宽度和高度,color是指直线的色彩。
4)矩形函数
该函数的格式为:drawRect(int32_t x, int32_t y, int32_t w, int32_t h, uint32_t color);
其作用是在屏上从坐标点(x,y),以指定色彩color绘制一个宽度和高度分别为w和h的矩形。
其使用形式为:
tft.drawRect(110,70,100,100,TFT_BLACK);
若绘制实心矩形,则使用函数fillRect(),其函数格式为:fillRect(int32_t x, int32_t y, int32_t w, int32_t h, uint32_t color);
5)圆函数
该函数的格式为:drawCircle(int32_t x0, int32_t y0, int32_t r, uint32_t color);
其作用是在屏上从坐标点(x0,y0),以指定色彩color绘制一个半径为r的圆。
其使用形式为:tft.drawCircle(160,120,50,TFT_BLACK);
若绘制实心圆,则使用函数fillCircle(),其函数格式为:fillCircle(int32_t x0, int32_t y0, int32_t r, uint32_t color);
6)三角形函数该函数的格式为:drawTriangle(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t x2,int32_t y2, uint32_t color);
其作用是在屏上按3个坐标点(x0,y0)、(x1,y1)和(x2,y2),以指定色彩color绘制一个三角形。
其使用形式为:tft.drawTriangle(160,70,60,170,260,170,TFT_BLACK);
若绘制实心三角形,则使用函数fillTriangle(),其函数格式为:fillTriangle(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t x2,int32_t y2, uint32_t color);
7)圆角矩形函数该函数的格式为:drawRoundRect(int32_t x, int32_t y, int32_t w, int32_t h, int32_t r,uint32_t color);
其作用是在屏上从坐标点(x,y),以指定色彩color绘制一个宽度和高度分别为w和h倒角半径为r的圆角矩形。
其使用形式为:tft.drawRoundRect(110,70,100,100,10,TFT_BLACK);
若绘制实心圆角矩形,则使用函数fillRoundRect(),其函数格式为:fillRoundRect(int32_t x, int32_t y, int32_t w, int32_t h, int32_t r,uint32_t color);
8)椭圆函数该函数的格式为:drawEllipse(int16_t x0, int16_t y0, int32_t rx, int32_t ry, uint16_tcolor);
其作用是在屏上从坐标点(x0,y0),以指定色彩color绘制一个长短轴为rx和ry的椭圆。
其使用形式为:tft.drawEllipse(160,120,50,100,TFT_BLACK);
若绘制实心椭圆,则使用函数fillEllipse(),其函数格式为:fillEllipse(int16_t x0, int16_t y0, int32_t rx, int32_t ry, uint16_tcolor);
9)字符函数该函数的格式为:
drawChar(int32_t x, int32_t y, uint16_t c, uint32_t color, uint32_t bg, uint8_tsize)其作用是在屏上从坐标点(x,y)以指定色彩color显示一个字符c,该字符的大小为size,背景色为bg。
其使用形式为:
tft.drawChar(140,120,'A',TFT_BLACK, TFT_RED,2);
21ic电子网

扫描二维码,关注更多精彩内容

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭