跳到主要内容

搭配 Arduino 使用

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

插入方式​

连接图如下(点击可放大)
注意:下图是2.8寸TFT屏与Arduino uno的连接图,但本产品与其连接方式完全一样

Arduino connect 1

Arduino connect 2

硬件配置​

  • 如果 Arduino 主板带有 ICSP 接口,将显示模块上的 SPI Config 开关置于 ICSP 方向(默认)(本公司的Arduino UNO主板是带有ICSP接口的,直接插上即可)

  • 如果 Arduino 主板没有 ICSP 接口,将显示模块上的 SPI Config 开关分别至于 SCLK\D13,MISO\D12, MOSI\D11

安装编译软件(Windows教程)​

arduino IDE 安装教程

运行程序​

解压压缩包,打开文件夹,打开Arduino文件夹,可以看到LCD_Show、LCD_ShowBMP、LCD_Touch三个工程文件夹
本产品与本公司同系列的3.5寸 TFT屏采用了相同的LCD控制芯片和触摸板控制芯片,所以代码是完全兼容的,以下就以3.5寸TFT为例进行介绍

首先直接打开LCD_Show文件夹中的LCD_Show.ino文件,然后选择开发板型号Arduino UNO

3

选择对应的COM口

3

然后点击编译并上传即可

3

程序说明​

LCD_Show用于显示一些不同颜色形状的图案及时间、 LCD_ShowBMP用于显示BMP格式的图片、LCD_Touch用于使用触摸功能

本产品使用的显示控制器为ILI9486 ,我们需要通过SPI通讯协议对该控制器进行初始化,初始化函数都写在LCD_Driver.cpp里
可以看到在LCD_Show.ino中有

System_Init();//系统初始化、配置串口波特率、SPI及相关引脚等<br/>
LCD_SCAN_DIR Lcd_ScanDir = SCAN_DIR_DFT; //设置扫描方式 <br/>
LCD_Init( Lcd_ScanDir, 200);//初始化屏幕,并传递了扫描方式及背光亮度<br/>

关于屏幕显示的功能函数都写在LCD_GUI.cpp里,每个函数的功能及传递的参数在源代码里都有解释,需要使用时直接调用即可

  • 画点

    void GUI_DrawPoint(POINT Xpoint, POINT Ypoint, COLOR Color,
    DOT_PIXEL Dot_Pixel, DOT_STYLE DOT_STYLE)
  • 画线(实线或虚线)

    void GUI_DrawLine(POINT Xstart, POINT Ystart, POINT Xend, POINT Yend,
    COLOR Color, LINE_STYLE Line_Style, DOT_PIXEL Dot_Pixel)
  • 画矩形(空心或实心)

    void GUI_DrawRectangle(POINT Xstart, POINT Ystart, POINT Xend, POINT Yend,
    COLOR Color, DRAW_FILL Filled, DOT_PIXEL Dot_Pixel)
  • 画圆(空心或实心)

    void GUI_DrawCircle(POINT X_Center, POINT Y_Center, LENGTH Radius,
    COLOR Color, DRAW_FILL Draw_Fill , DOT_PIXEL Dot_Pixel)
  • 显示字符

    void GUI_DisChar(POINT Xpoint, POINT Ypoint, const char Acsii_Char,
    sFONT* Font, COLOR Color_Background, COLOR Color_Foreground)
  • 显示字符串

    void GUI_DisString_EN(POINT Xstart, POINT Ystart, const char * pString,
    sFONT* Font, COLOR Color_Background, COLOR Color_Foreground )
  • 显示数字

    void GUI_DisNum(POINT Xpoint, POINT Ypoint, int32_t Nummber,
    sFONT* Font, COLOR Color_Background, COLOR Color_Foreground )
  • 显示时间

    void GUI_Showtime(POINT Xstart, POINT Ystart, POINT Xend, POINT Yend,
    DEV_TIME *pTime, COLOR Color)

在使用LCD_ShowBMP用于显示图片实验前,先把资料中PIC文件夹下中的图片复制到SD卡根目录 (根目录想必你应该明白吧,就是将图片直接存到SD卡,不要放在任何子文件夹里哈)
然后将SD卡插入屏幕背面的SD卡卡槽里开始下载程序验证即可

  • 在这里要注意的是SD卡要是FAT格式的,图片要是480*320像素24位色深.BMP格式

在这里也稍微做下解释,本例程显示BMP图片首先也是通过SPI协议来读取SD卡中BMP格式的图片数据,再把这些数据以图像显示出来即可
在LCD_ShowBMP.ino中:

SD_Init();//SD卡初始化
LCD_ShowBMP();//显示BMP图片

这些函数都写在LCD_Bmp.cpp里,实际上从SD卡中读取特定文件名的BMP格式的图片数据再调用我们自己写好的显示函数把这些数据重新“表达”为图像
这种方式不管在哪个平台,其原理都是类似的,感兴趣的朋友可以查阅相关资料对照相关代码认真研究一下

在LCD_Touch.ino中:

TP_Init( Lcd_ScanDir );//触摸板初始化,传递参数为扫描方式
TP_GetAdFac();//校准屏幕
TP_Dialog();//清屏
TP_DrawBoard();//开启画板

该例程运行后,屏幕右边会有五种颜色,系统默认为黑色,触摸以选择画笔颜色;点击AD按钮,按屏幕提示点击红色+号对屏幕进行校准;点击右上角 CLEAR按钮对画板清屏
触摸实验默认使用了四组校准值,可以满足四个方向的画笔操作,在右边有五种颜色的选择,画笔大小默认为 9 个像素点
关于触摸屏的相关函数都写在LCD_Touch.cpp里,且其功能及传递参数的用途均有解释

程序提供了像素点大小为

Width 5,Height 8 font8
Width 7,Height 12 font12
Width 11,Height 16 font16
Width 14,Height 20 font20
Width 17,Height24 font24

五种大小的字体库

  • 如果你需要不同大小不同字体的字符,可以根据资料中提供的字模提取软件生成自己想要的字库
  • 事实上你也可以Image2Lcd图片取模软件将不同大小不同格式的图片转换成数组数据,再用我们写好的函数显示出来
  • 资料中给出了所有控制芯片的数据手册供大家参考,如果你想更加深入的了解底层函数为什么这样写,就去数据手册看看吧!