2.8inch TFT Touch Shield

2.8inch TFT Touch Shield
2.8inch TFT Touch Shield
{{{name2}}}
{{{name3}}}
基本信息
分类: Arduino LCD模块
{{{userDefinedInfo1}}}: {{{userdefinedvalue1}}}
{{{userDefinedInfo2}}}: {{{userdefinedvalue2}}}
{{{userDefinedInfo3}}}: {{{userdefinedvalue3}}}
品牌: Waveshare
功能简介
特性 2.8寸Arudino电阻屏 带LCD控制器 TFT
驱动芯片 HX8347D(LCD控制)、XPT2046(触摸)
分辨率 320×240
' 无特性,不解释
' 无特性,不解释
接口 SPI Arduino
相关产品
♦ {{{Product1}}}
♦ {{{Product2}}}
♦ {{{Product3}}}
♦ {{{Product4}}}
♦ {{{Product5}}}
♦ {{{Product6}}}

目录

产品特性:

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

应用案例:

数码相框,画板,电子书,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 安装教程

运行程序

把光盘资料下的Arduino/2.8inch_TFT_Touch_Shield复制到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格式。


问题:在NUCLEO开发板上无法正常使用该LCD?
答复:
  • 对于一些没有ICSP接口的开发板(如NUCLEO),需要用0欧电阻或焊锡短接以下三个位置的焊盘

2.8inch TFT Touch Shield FAQ01.jpg


EMAIL:2355742826@qq.com
电话:0755-82726080
QQ:2355742826
微信:扫下方二维码添加
Ywb.jpg
* 企业微信添加好友时软件无提示,我们无法及时通过客户好友申请。如长时间无响应,请用其他联系方式。

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

Call-of-duty-V2.jpg