“2.8inch TFT Touch Shield”的版本间的差异

来自Waveshare Wiki
跳转至: 导航搜索
 
(未显示6个用户的94个中间版本)
第1行: 第1行:
 +
<div class="wiki-pages blue-color">
 +
<!--<div class="tabberlive  newwsnav" id="wsnavbar">
 +
<ul class="tabbernav">
 +
<li class="nav-link">[[#myintro|说明]]</li>
 +
<li class="nav-link">[[#myresources|资料]]</li>
 +
<li class="nav-link">[[#myfaq|FAQ]]</li>
 +
<li class="nav-link">[[#mysupport|售后]]</li>
 +
</ul>
 +
</div>-->
 
<div class="tabber">
 
<div class="tabber">
<!--<div class="tabbertab" title="说明"></div>-->
 
<div class="tabbertab" title="资料">
 
 
{{外围模块|colorscheme=blue
 
{{外围模块|colorscheme=blue
 
|name = 2.8inch TFT Touch Shield
 
|name = 2.8inch TFT Touch Shield
|img=[[File:2.8inch-TFT-Touch-Shield-intro.jpg|360px|link=http://{{SERVERNAME}}/shop/2.8inch-TFT-Touch-Shield.htm | 2.8inch TFT Touch Shield]]
+
|img=[[File:2.8inch-TFT-Touch-Shield-intro.jpg|360px|link=https://{{SERVERNAME}}/shop/2.8inch-TFT-Touch-Shield.htm | 2.8inch TFT Touch Shield]]
 
|category1=Arduino LCD
 
|category1=Arduino LCD
 
|category2=显示屏
 
|category2=显示屏
第13行: 第20行:
 
|feature = 2.8寸Arudino电阻屏 带LCD控制器 TFT
 
|feature = 2.8寸Arudino电阻屏 带LCD控制器 TFT
 
|feature-name1= 驱动芯片
 
|feature-name1= 驱动芯片
|feature-value1=HX8347D(LCD控制)、XPT2046(触摸)
+
|feature-value1=ST7789V(LCD控制)、XPT2046(触摸)
 
|feature-name2= 分辨率
 
|feature-name2= 分辨率
 
|feature-value2= 320×240
 
|feature-value2= 320×240
第19行: 第26行:
 
| interface2 = SPI
 
| interface2 = SPI
 
}}
 
}}
 +
<div class="tabbertab" title="说明" id="myintro">
 +
=说明=
 +
 +
==产品特性:==
 +
<!-- 旧版本使用HX8347,Rev2.1使用了ST7789V并增加了屏幕MISO连线可以读取ID
 +
{|border=0; style="width:450px;"         
 +
|-style="background:#ddf; color:black;"
 +
|驱动芯片||HX8347D
 +
|-
 +
|支持接口||SPI
 +
|-style="background:#ddf; color:black;"
 +
|分辨率||320 *240
 +
|-
 +
|显示尺寸||57.6mm*43.2mm
 +
|-style="background:#ddf; color:black;"
 +
|外形尺寸||73.3mm*55.3mm
 +
|-
 +
|颜色||RGB ,65K彩色
 +
|-style="background:#ddf; color:black;"
 +
|触摸方式||四线电阻式
 +
|}
 +
-->
 +
 +
{|border=0; style="width:450px;"         
 +
|-style="background:#ddf; color:black;"
 +
|驱动芯片||ST7789V
 +
|-
 +
|支持接口||SPI
 +
|-style="background:#ddf; color:black;"
 +
|分辨率||320 *240
 +
|-
 +
|显示尺寸||57.6mm*43.2mm
 +
|-style="background:#ddf; color:black;"
 +
|外形尺寸||73.3mm*55.3mm
 +
|-
 +
|颜色||RGB ,262K彩色
 +
|-style="background:#ddf; color:black;"
 +
|触摸方式||四线电阻式
 +
|}
 +
 +
==应用案例:==
 +
数码相框,画板,电子书,MP3播放器等。<br />
 +
==使用说明:==
 +
===模块接口===
 +
{|border=2; style="width:500px"
 +
|-style="background:#369;color:white;" align=center
 +
|标识||描述
 +
|-align=center
 +
|SCLK||SPI时钟
 +
|-align=center
 +
|MISO||SPI主机输入从机输出信号
 +
|-align=center
 +
|MOSI||                         SPI主机输出从机输入信号
 +
|-align=center
 +
|LCD_CS|| LCD片选信号
 +
|-align=center
 +
|LCD_BL|| LCD背光信号
 +
|-align=center
 +
|LCD_DC|| LCD命令信号
 +
|-align=center
 +
|SD_CS ||SD卡片选信号
 +
|-align=center
 +
|TP_CS ||XPT2046片选信号
 +
|-align=center
 +
|TP_IRQ ||XPT2046中断输出信号
 +
|-align=center
 +
|5V ||5V电源输入
 +
|-align=center
 +
|GND|| 地线
 +
|}
 +
</div>
 +
 +
<div class="tabbertab" title="Arduino教程">
 +
=Arduino=
 +
本例程已经在Arduino uno上测试通过,直接按下图插入Arduino uno即可<br />
 +
==插入方式:==
 +
连接图如下(点击可放大):<br />
 +
[[File:Arduino_connect_1.png|700px]]<br />
 +
[[File:Arduino_connect_2.png|700px]]<br />
 +
==硬件连接注意事项:==
 +
●  Arduino主板带有ICSP接口时,显示模块上的SB1,SB2,SB3保持开路。<br/>
 +
●  Arduino主板没有ICSP接口时,显示模块上的SB1,SB2,SB3需要分别焊上0R电阻,保持短路。<br/>
 +
 +
==安装编译软件(Windows教程)==
 +
[https://{{SERVERNAME}}/wiki/Arduino_ide_download arduino IDE 安装教程]
 +
<!--
 +
打开浏览器,访问[https://www.arduino.cc/en/Main/Software arduinoIDE的官方下载页面],不熟练英文没关系,可以切换到中文(点击可放大):<br />
 +
[[file:e-paper_arduino_ide_software1.png|700px]]<br />
 +
点击此处下载软件<br />
 +
[[file:e-paper_arduino_ide_software2.png]]<br />
 +
打开刚刚的下载的安装软件,双击安装,一路点击next即可:<br />
 +
[[file:e-paper_arduino_ide_software3.png]]<br />
 +
[[file:e-paper_arduino_ide_software4.png]]<br />
 +
[[file:e-paper_arduino_ide_software5.png]]<br />
 +
[[file:e-paper_arduino_ide_software6.png]]<br />
 +
快安装完成的时候,会弹出安装USB驱动,点击安装<br />
 +
[[file:e-paper_arduino_ide_software7.png]]<br />
 +
[[file:e-paper_arduino_ide_software8.png]]<br />
 +
安装完成,桌面生成了快捷打开方式,双击打开之后弹出arduino IDE软件<br />
 +
[[file:e-paper_arduino_ide_software9.png]]<br />
 +
-->
 +
 +
==运行程序==
 +
把例程中2.8inch_TFT_Touch_Shield/Arduino/lib路径下的文件复制到Arduino的\Arduino\libraries目录下<br/>
 +
<br/>
 +
[[File:2.8TFT_lib.png|800px]]<br/>
 +
<br/>
 +
打开example下的示例程序,例如DisplayString.ino,然后选择开发板型号Arduino UNO<br/>
 +
<br/>
 +
[[File:2.8DisplayString.png|800px]]<br/>
 +
<br/>
 +
选择对应的COM口<br/>
 +
<br/>
 +
[[File:2.8DisplayString_COM.png|800px]]<br/>
 +
<br/>
 +
然后点击编译并下载即可<br/>
 +
<br/>
 +
[[File:2.8DisplayString_download.png|800px]]<br/>
 +
 +
==程序说明==
 +
例程中所给的四个示例代码DisplayString、DrawGraphic、ShowBMP、TouchPanel分别用于显示字符串、显示一些不同的图形、显示BMP格式的图片、触摸笔功能<br/>
 +
 +
在进行ShowImage显示图片实验前,先把资料中PIC文件夹下中的图片复制到SD卡根目录
 +
(根目录想必你应该明白吧,就是将图片直接存到SD卡,不要放在任何子文件夹里哈)<br/>
 +
 +
然后将SD卡插入屏幕背面的SD卡卡槽里开始下载程序验证即可<br/>
 +
 +
在进行触摸屏实验TouchPanel前,必须根据显示提示校准触摸屏。打开相应工程,烧写程序,运行的时候会提示:<br/>
 +
 +
<pre>
 +
Please use the stylus click the cross on the screen. The cross will always move until the screen adjustment is completed.
 +
</pre>
 +
 +
根据提示,点击屏幕上的红色+号,直到校准完毕。<br/>
 +
点击LCD右上角的CLEAR,清除显示<br/>
 +
关于触摸屏的功能函数都在Touch.cpp里:<br/>
 +
 +
*校准触摸屏<br/>
 +
<pre>
 +
tp_adjust()
 +
</pre>
 +
 +
*将屏幕清屏显示全白<br/>
 +
<pre>
 +
tp_dialog()
 +
</pre>
 +
 +
*开启画板<br/>
 +
<pre>
 +
tp_draw_board()
 +
</pre>
 +
 +
关于显示的功能函数都写在LCD.cpp中,我们来大致看看这些函数:<br/>
 +
 +
*屏幕屏初始化,在这里完成对ST7789芯片的配置写入
 +
<pre>
 +
void TFT::lcd_init()//屏幕初始化
 +
</pre>
 +
 +
*画点
 +
<pre>
 +
void TFT::lcd_draw_point(uint16_t hwXpos, uint16_t hwYpos, uint16_t hwColor)
 +
</pre>
 +
 +
*显示一个字符
 +
<pre>
 +
void TFT::lcd_display_char(uint16_t hwXpos, uint16_t hwYpos, uint8_t chChr,  uint8_t chSize, uint16_t hwColor)
 +
</pre>
 +
 +
*显示一个数字
 +
<pre>
 +
void TFT::lcd_display_num(uint16_t hwXpos,uint16_t hwYpos,uint32_t chNum,uint8_t chLen,uint8_t chSize,uint16_t hwColor)
 +
</pre>
 +
 +
*画直线
 +
<pre>
 +
void TFT::lcd_draw_line(uint16_t hwXpos0,uint16_t hwYpos0,uint16_t hwXpos1,uint16_t hwYpos1,uint16_t hwColor)
 +
</pre>
 +
 +
*画圆
 +
<pre>
 +
void TFT::lcd_draw_circle(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwRadius,uint16_t hwColor)
 +
</pre>
 +
 +
*画水平直线
 +
<pre>
 +
void TFT::lcd_draw_v_line(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwHeight,uint16_t hwColor)
 +
</pre>
 +
 +
*画垂直直线
 +
<pre>
 +
void TFT::lcd_draw_h_line(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwWidth,uint16_t hwColor)
 +
</pre>
 +
 +
*画矩形
 +
<pre>
 +
void TFT::lcd_draw_rect(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwWidth,uint16_t hwHeight,uint16_t hwColor)
 +
</pre>
 +
 +
在font.c文件中,定义了高12宽6以及高16宽8的两种大小的字体
 +
 +
<font color="#FF0000">需要注意的是:图片的格式要是240*320, 24bit, bmp,SD卡的格式要是FAT格式。</font>
 +
 +
 +
</div>
 +
<div class="tabbertab" title="STM32教程">
 +
 +
=STM32=
 +
本例程已经在XNUCLEO-F103RB上测试通过,直接按下图插入XNUCLEO-F103RB即可。XNUCLEO-F103RB的型号是STM32F103RBT6,如果有需要移植程序,请对照原理图按实际引脚连接<br />
 +
==插入方式:==
 +
连接图如下(点击可放大):<br />
 +
[[File:STM32_connect_1.JPG|700px]]<br/>
 +
[[File:STM32_connect_2.JPG|700px]]<br/>
 +
==软件说明==
 +
 +
例程是基于HAL库进行开发的。 下载程序,找到STM32程序文件目录,打开STM32里面有
 +
DisplayString、DrawGraphic、ShowImage、Touchscreen四个工程文件夹
 +
 +
以DisplayString为例,打开STM32/DisplayString/MDK-ARM/DisplayString.uvprojx
 +
[[File:2.8inchSTM32_DisplayString_1.png|800px]]<br/>
 +
<br/>
 +
直接依次点击编译下载<br/>
 +
<br/>
 +
[[File:2.8inchSTM32_DisplayString_2.png|800px]]<br/>
 +
 +
==程序说明==
 +
例程中所给的四个示例代码DisplayString、DrawGraphic、ShowBMP、TouchPanel分别用于显示字符串、显示一些不同的图形、显示BMP格式的图片、触摸笔功能<br/>
 +
 +
在进行ShowImage显示图片实验前,先把资料中PIC文件夹下中的图片复制到SD卡根目录
 +
(根目录想必你应该明白吧,就是将图片直接存到SD卡,不要放在任何子文件夹里哈)<br/>
 +
 +
然后将SD卡插入屏幕背面的SD卡卡槽里开始下载程序验证即可<br/>
 +
 +
在进行触摸屏实验TouchPanel前,必须根据显示提示校准触摸屏。打开相应工程,烧写程序,运行的时候会提示:<br/>
 +
 +
<pre>
 +
Please use the stylus click the cross on the screen. The cross will always move until the screen adjustment is completed.
 +
</pre>
 +
 +
根据提示,点击屏幕上的红色+号,直到校准完毕。<br/>
 +
点击LCD右上角的CLEAR,清除显示<br/>
 +
关于触摸屏的功能函数都在Touch.c里:<br/>
 +
 +
*校准触摸屏<br/>
 +
<pre>
 +
tp_adjust()
 +
</pre>
 +
 +
*将屏幕清屏显示全白<br/>
 +
<pre>
 +
tp_dialog()
 +
</pre>
 +
 +
*开启画板<br/>
 +
<pre>
 +
tp_draw_board()
 +
</pre>
 +
 +
关于显示的功能函数都写在LCD.cpp中,我们来大致看看这些函数:<br/>
 +
 +
*屏幕屏初始化,在这里完成对ST7789芯片的配置写入
 +
<pre>
 +
void lcd_init()//屏幕初始化
 +
</pre>
 +
 +
*设置光标位置
 +
<pre>
 +
void lcd_set_cursor(uint16_t hwXpos, uint16_t hwYpos)
 +
</pre>
 +
 +
*清屏
 +
<pre>
 +
void lcd_clear_screen(uint16_t hwColor) 
 +
</pre>
 +
 +
*在屏幕上开一个窗口用于显示
 +
<pre>
 +
void lcd_set_window
 +
</pre>
 +
 +
*画点
 +
<pre>
 +
void lcd_draw_point(uint16_t hwXpos, uint16_t hwYpos, uint16_t hwColor)
 +
</pre>
 +
 +
*显示一个字符
 +
<pre>
 +
void lcd_display_char(uint16_t hwXpos, uint16_t hwYpos, uint8_t chChr,  uint8_t chSize, uint16_t hwColor)
 +
</pre>
 +
 +
*显示一个数字
 +
<pre>
 +
void lcd_display_num(uint16_t hwXpos,uint16_t hwYpos,uint32_t chNum,uint8_t chLen,uint8_t chSize,uint16_t hwColor)
 +
</pre>
 +
 +
*画直线
 +
<pre>
 +
void lcd_draw_line(uint16_t hwXpos0,uint16_t hwYpos0,uint16_t hwXpos1,uint16_t hwYpos1,uint16_t hwColor)
 +
</pre>
 +
 +
*画圆
 +
<pre>
 +
void lcd_draw_circle(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwRadius,uint16_t hwColor)
 +
</pre>
 +
 +
*画水平直线
 +
<pre>
 +
void lcd_draw_v_line(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwHeight,uint16_t hwColor)
 +
</pre>
 +
 +
*画垂直直线
 +
<pre>
 +
void lcd_draw_h_line(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwWidth,uint16_t hwColor)
 +
</pre>
 +
 +
*画矩形
 +
<pre>
 +
void lcd_draw_rect(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwWidth,uint16_t hwHeight,uint16_t hwColor)
 +
</pre>
 +
 +
*设置显示方向,即旋转角度,可设置为0°, 90°, 180°, 270°
 +
<pre>
 +
void setRotation(uint8_t rotation)
 +
</pre>
 +
 +
在font.c文件中,定义了高12宽6以及高16宽8的两种大小的字体
 +
 +
<font color="#FF0000">需要注意的是:图片的格式要是240*320, 24bit, bmp,SD卡的格式要是FAT格式。</font>
 +
</div>
 +
 +
<div class="tabbertab" title="资料" id="myresources">
 +
 +
<h1>资料</h1>
 +
 
===文档===
 
===文档===
*[[2.8inch TFT Touch Shield用户手册|用户手册]]
+
<!--*[[2.8inch TFT Touch Shield用户手册|用户手册]]-->
*[http://{{SERVERNAME}}/w/upload/6/62/2.8inch_TFT_Touch_Shield.pdf 原理图]<br>
+
*[https://{{SERVERNAME}}/w/upload/6/62/2.8inch_TFT_Touch_Shield.pdf 原理图]<br>
 +
*[https://www.waveshare.net/w/upload/7/71/2.8inch_TFT_Touch_Shield_drawing.zip 图纸]
 +
 
 
===程序===
 
===程序===
*[http://{{SERVERNAME}}/w/upload/5/5e/2.8inch_TFT_Touch_Shield_code.7z 示例程序]<br>
+
<!--V2.1版本前使用了HX8347D驱动,V2.1版本改用ST778V驱动,增加了ID识别-->
 +
<!--旧版程序,请勿删除链接
 +
*[https://{{SERVERNAME}}/w/upload/5/5e/2.8inch_TFT_Touch_Shield_code.7z 示例程序]<br>
 +
-->
 +
 
 +
*[https://www.waveshare.net/w/upload/6/65/2inch8_TFT_Touch_Shield_code.zip 示例程序]<br>
 +
 
 +
<!--Eng41更改,请勿删除链接
 +
*[https://www.waveshare.net/w/upload/9/9a/2.8inch_TFT_Touch_Shield_V3.7z  示例程序]<br>
 +
-->
 
===数据手册===
 
===数据手册===
*[http://{{SERVERNAME}}/w/upload/0/09/HX8347-D_DS_T_preliminary_v01_081129.pdf HX8347]
+
*[https://{{SERVERNAME}}/w/upload/0/09/HX8347-D_DS_T_preliminary_v01_081129.pdf HX8347]
*[http://{{SERVERNAME}}/w/upload/b/b0/XPT2046.pdf XPT2046]
+
*[https://www.waveshare.net/w/upload/a/ad/ST7789VW.pdf ST7789V]
*[http://{{SERVERNAME}}/w/upload/e/e3/74VHC125.pdf 74VHC125]
+
*[https://{{SERVERNAME}}/w/upload/b/b0/XPT2046.pdf XPT2046]
 +
*[https://{{SERVERNAME}}/w/upload/e/e3/74VHC125.pdf 74VHC125]
 +
*[https://www.waveshare.net/w/upload/2/29/Sn74hc245.pdf SN74HC245]
 +
 
 +
 
 +
 
 
===开发资料===
 
===开发资料===
*[http://{{SERVERNAME}}/w/upload/3/36/Image2Lcd.7z Image2Lcd图片取模软件]
+
*[https://{{SERVERNAME}}/w/upload/3/36/Image2Lcd.7z Image2Lcd图片取模软件]
*[http://{{SERVERNAME}}/w/upload/c/c6/Zimo221.7z 字摸提取软件]
+
*[https://{{SERVERNAME}}/w/upload/c/c6/Zimo221.7z 字摸提取软件]
 
===视频===
 
===视频===
 
*[[2.8inch-TFT-Touch-Shield-Video|演示视频]][[File:video-logo.png|23px|link=2.8inch-TFT-Touch-Shield-Video]]
 
*[[2.8inch-TFT-Touch-Shield-Video|演示视频]][[File:video-logo.png|23px|link=2.8inch-TFT-Touch-Shield-Video]]
<br /><big>批量下载教程——请戳<big><big><big>☛</big></big></big></big>[[File:download-icon.png|link=批量下载教程]]
+
 
 +
 
 +
 
 +
</div>
 +
<div class="tabbertab" title="FAQ" id="myfaq">
 +
 
 +
<h1>FAQ</h1>
 +
<br />{{2.8inch-TFT-Touch-Shield-FAQ}}</div>
 +
<div class="tabbertab" title="售后" id="mysupport">
 +
 
 +
=售后=
 +
{{Service20}}</div>
 
</div>
 
</div>
<div class="tabbertab" title="FAQ"><br />{{2.8inch-TFT-Touch-Shield-FAQ}}</div>
 
<div class="tabbertab" title="售后"><br />{{Service06}}</div>
 

2023年9月14日 (四) 18:33的最新版本

2.8inch TFT Touch Shield
{{{name2}}}
{{{name3}}}
功能简介
特性 2.8寸Arudino电阻屏 带LCD控制器 TFT
驱动芯片 ST7789V(LCD控制)、XPT2046(触摸)
分辨率 320×240
' 无特性,不解释
' 无特性,不解释
接口 SPI Arduino

说明

产品特性:

驱动芯片 ST7789V
支持接口 SPI
分辨率 320 *240
显示尺寸 57.6mm*43.2mm
外形尺寸 73.3mm*55.3mm
颜色 RGB ,262K彩色
触摸方式 四线电阻式

应用案例:

数码相框,画板,电子书,MP3播放器等。

使用说明:

模块接口

标识 描述
SCLK SPI时钟
MISO SPI主机输入从机输出信号
MOSI SPI主机输出从机输入信号
LCD_CS LCD片选信号
LCD_BL LCD背光信号
LCD_DC LCD命令信号
SD_CS SD卡片选信号
TP_CS XPT2046片选信号
TP_IRQ XPT2046中断输出信号
5V 5V电源输入
GND 地线

Arduino

本例程已经在Arduino uno上测试通过,直接按下图插入Arduino uno即可

插入方式:

连接图如下(点击可放大):
Arduino connect 1.png
Arduino connect 2.png

硬件连接注意事项:

● Arduino主板带有ICSP接口时,显示模块上的SB1,SB2,SB3保持开路。
● Arduino主板没有ICSP接口时,显示模块上的SB1,SB2,SB3需要分别焊上0R电阻,保持短路。

安装编译软件(Windows教程)

arduino IDE 安装教程

运行程序

把例程中2.8inch_TFT_Touch_Shield/Arduino/lib路径下的文件复制到Arduino的\Arduino\libraries目录下

2.8TFT lib.png

打开example下的示例程序,例如DisplayString.ino,然后选择开发板型号Arduino UNO

2.8DisplayString.png

选择对应的COM口

2.8DisplayString COM.png

然后点击编译并下载即可

2.8DisplayString download.png

程序说明

例程中所给的四个示例代码DisplayString、DrawGraphic、ShowBMP、TouchPanel分别用于显示字符串、显示一些不同的图形、显示BMP格式的图片、触摸笔功能

在进行ShowImage显示图片实验前,先把资料中PIC文件夹下中的图片复制到SD卡根目录 (根目录想必你应该明白吧,就是将图片直接存到SD卡,不要放在任何子文件夹里哈)

然后将SD卡插入屏幕背面的SD卡卡槽里开始下载程序验证即可

在进行触摸屏实验TouchPanel前,必须根据显示提示校准触摸屏。打开相应工程,烧写程序,运行的时候会提示:

Please use the stylus click the cross on the screen. The cross will always move until the screen adjustment is completed.

根据提示,点击屏幕上的红色+号,直到校准完毕。
点击LCD右上角的CLEAR,清除显示
关于触摸屏的功能函数都在Touch.cpp里:

  • 校准触摸屏
tp_adjust()
  • 将屏幕清屏显示全白
tp_dialog()
  • 开启画板
tp_draw_board()

关于显示的功能函数都写在LCD.cpp中,我们来大致看看这些函数:

  • 屏幕屏初始化,在这里完成对ST7789芯片的配置写入
void TFT::lcd_init()//屏幕初始化
  • 画点
void TFT::lcd_draw_point(uint16_t hwXpos, uint16_t hwYpos, uint16_t hwColor)
  • 显示一个字符
void TFT::lcd_display_char(uint16_t hwXpos, uint16_t hwYpos, uint8_t chChr,  uint8_t chSize, uint16_t hwColor)
  • 显示一个数字
void TFT::lcd_display_num(uint16_t hwXpos,uint16_t hwYpos,uint32_t chNum,uint8_t chLen,uint8_t chSize,uint16_t hwColor)
  • 画直线
void TFT::lcd_draw_line(uint16_t hwXpos0,uint16_t hwYpos0,uint16_t hwXpos1,uint16_t hwYpos1,uint16_t hwColor)
  • 画圆
void TFT::lcd_draw_circle(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwRadius,uint16_t hwColor)	
  • 画水平直线
void TFT::lcd_draw_v_line(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwHeight,uint16_t hwColor)
  • 画垂直直线
void TFT::lcd_draw_h_line(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwWidth,uint16_t hwColor)
  • 画矩形
void TFT::lcd_draw_rect(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwWidth,uint16_t hwHeight,uint16_t hwColor)

在font.c文件中,定义了高12宽6以及高16宽8的两种大小的字体

需要注意的是:图片的格式要是240*320, 24bit, bmp,SD卡的格式要是FAT格式。


STM32

本例程已经在XNUCLEO-F103RB上测试通过,直接按下图插入XNUCLEO-F103RB即可。XNUCLEO-F103RB的型号是STM32F103RBT6,如果有需要移植程序,请对照原理图按实际引脚连接

插入方式:

连接图如下(点击可放大):
STM32 connect 1.JPG
STM32 connect 2.JPG

软件说明

例程是基于HAL库进行开发的。 下载程序,找到STM32程序文件目录,打开STM32里面有 DisplayString、DrawGraphic、ShowImage、Touchscreen四个工程文件夹

以DisplayString为例,打开STM32/DisplayString/MDK-ARM/DisplayString.uvprojx 2.8inchSTM32 DisplayString 1.png

直接依次点击编译下载

2.8inchSTM32 DisplayString 2.png

程序说明

例程中所给的四个示例代码DisplayString、DrawGraphic、ShowBMP、TouchPanel分别用于显示字符串、显示一些不同的图形、显示BMP格式的图片、触摸笔功能

在进行ShowImage显示图片实验前,先把资料中PIC文件夹下中的图片复制到SD卡根目录 (根目录想必你应该明白吧,就是将图片直接存到SD卡,不要放在任何子文件夹里哈)

然后将SD卡插入屏幕背面的SD卡卡槽里开始下载程序验证即可

在进行触摸屏实验TouchPanel前,必须根据显示提示校准触摸屏。打开相应工程,烧写程序,运行的时候会提示:

Please use the stylus click the cross on the screen. The cross will always move until the screen adjustment is completed.

根据提示,点击屏幕上的红色+号,直到校准完毕。
点击LCD右上角的CLEAR,清除显示
关于触摸屏的功能函数都在Touch.c里:

  • 校准触摸屏
tp_adjust()
  • 将屏幕清屏显示全白
tp_dialog()
  • 开启画板
tp_draw_board()

关于显示的功能函数都写在LCD.cpp中,我们来大致看看这些函数:

  • 屏幕屏初始化,在这里完成对ST7789芯片的配置写入
void lcd_init()//屏幕初始化
  • 设置光标位置
void lcd_set_cursor(uint16_t hwXpos, uint16_t hwYpos)
  • 清屏
void lcd_clear_screen(uint16_t hwColor)  
  • 在屏幕上开一个窗口用于显示
void lcd_set_window
  • 画点
void lcd_draw_point(uint16_t hwXpos, uint16_t hwYpos, uint16_t hwColor)
  • 显示一个字符
void lcd_display_char(uint16_t hwXpos, uint16_t hwYpos, uint8_t chChr,  uint8_t chSize, uint16_t hwColor)
  • 显示一个数字
void lcd_display_num(uint16_t hwXpos,uint16_t hwYpos,uint32_t chNum,uint8_t chLen,uint8_t chSize,uint16_t hwColor)
  • 画直线
void lcd_draw_line(uint16_t hwXpos0,uint16_t hwYpos0,uint16_t hwXpos1,uint16_t hwYpos1,uint16_t hwColor)
  • 画圆
void lcd_draw_circle(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwRadius,uint16_t hwColor)	
  • 画水平直线
void lcd_draw_v_line(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwHeight,uint16_t hwColor)
  • 画垂直直线
void lcd_draw_h_line(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwWidth,uint16_t hwColor)
  • 画矩形
void lcd_draw_rect(uint16_t hwXpos,uint16_t hwYpos,uint16_t hwWidth,uint16_t hwHeight,uint16_t hwColor)
  • 设置显示方向,即旋转角度,可设置为0°, 90°, 180°, 270°
void setRotation(uint8_t rotation)

在font.c文件中,定义了高12宽6以及高16宽8的两种大小的字体

需要注意的是:图片的格式要是240*320, 24bit, bmp,SD卡的格式要是FAT格式。

FAQ


  • 对于一些没有ICSP接口的开发板(如NUCLEO),需要用0欧电阻或焊锡短接以下三个位置的焊盘

2.8inch TFT Touch Shield FAQ01.jpg


  • 旧版本使用HX8347驱动器的TFT屏幕,Rev2.1使用了ST7789V驱动器的IPS屏幕,旧版本是65K彩色,
    Rev2.1是262K彩色,图像显示更加逼真,经测试旧版本支持50MHz写入,Rev2.1版本支持30MHz写入

售后

联系人:黄工
QQ:2850151199
EMAIL:2850151199@qq.com
电话:0755-83040712
微信:扫下方二维码添加
Service20-Weichat.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证