Pico-ResTouch-LCD-3.5

来自Waveshare Wiki
跳转至: 导航搜索
Pico-ResTouch-LCD-3.5
{{{name2}}}
{{{name3}}}
功能简介
特性 无特性,不解释
显示尺寸 3.5英寸
分辨率 480×320
' 无特性,不解释
' 无特性,不解释
接口 SPI

说明

产品简介

专门为Raspberry Pi Pico 设计的3.5 英寸电阻触摸屏扩展板,板载电阻式触摸控制芯片 XPT2046 和 Micro SD 卡槽,使用 SPI 接口通信

产品特性

  • 480 × 320 分辨率液晶屏,65K 彩色,能清晰地显示彩色图片
  • 板载触摸控制芯片,相比用 AD 引脚控制触摸板的方案,触摸效果更流畅
  • 板载 Micro SD 卡槽,方便放入图片直接进行显示
  • 背光灯可编程控制,更省电
  • 提供完善的配套资料手册 (Raspberry Pi Pico C/C++ 和 MicroPython 等示例程序)

产品参数

我的参数
工作电压 5V 分辨率 480 × 320 Pixels
通信接口 SPI 显示尺寸 73.44 × 48.96 mm
显示面板 IPS 像素大小 0.153 × 0.153 mm
控制芯片 ILI9488 产品尺寸 86.00 × 57.20 mm

硬件说明

引脚分布

Pico-ResTouch-LCD-3.5使用的内置控制器为ILI9488,是一款480 x 320像素的RGB LCD控制器,测试例程使用RGB565的颜色格式,该LCD是16Bits的并口屏幕,硬件上使用了并口转串口芯片 ,这样可以大大的节省GPIO口,测试最大SPI写速度是60MHz

auto 0.96inch lcd module spi.png
注:与传统的SPI协议不同的地方是:由于绝大多数用于显示,故而将从机发往主机的数据线进行了隐藏,该表格详见Datasheet Page 55(8.4 Serial Interface)章节。
RESX(LCD_RST)为复位,模块上电时拉低,通常情况下置1
CSX(LCD_CS)为从机片选, 仅当CS为低电平时,芯片才会被使能
D/CX(LCD_DC)为芯片的数据/命令控制引脚,当DC = 0时写命令,当DC = 1时写数据
SDA(MOSI)为传输的数据,即RGB数据
SCL(CLK)为SPI通信时钟
对于SPI通信而言,数据是有传输时序的,即时钟相位(CPHA)与时钟极性(CPOL)的组合
CPHA的高低决定串行同步时钟是在第一时钟跳变沿还是第二个时钟跳变沿数据被采集,当CPHA = 0,在第一个跳变沿进行数据采集
CPOL的高低决定串行同步时钟的空闲状态电平,CPOL = 0,为低电平
从图中可以看出,当SCLK第一个下降沿时开始传输数据,一个时钟周期传输8bit数据,使用SPI0,按位传输,高位在前,低位在后

产品尺寸

Pico-ResTouch-LCD-3.5 003.jpg

硬件连接

LCD Pico 功能
VCC VSYS 电源输入
GND GND 电源地
SDIO_CLK GP5 SDIO接口SCK引脚,从设备时钟输入
LCD_DC GP8 数据/命令控制引脚(高电平数据,低电平命令)
LCD_CS GP9 LCD片选引脚(低电平有效)
LCD_CLK GP10 SPI通信CLK引脚,从设备时钟输入
MOSI GP11 SPI通信MOSI引脚,从设备数据输入
MISO GP12 SPI通信MISO引脚,从设备数据输出
LCD_BL GP13 背光控制
LCD_RST GP15 LCD复位引脚(低电平有效)
TP_CS GP16 触摸片选引脚(低电平有效)
TP_IRQ GP17 触摸中断引脚(低电平有效)
SDIO_CMD GP18 SDIO接口的CMD引脚
D0 GP19 SDIO接口的D0引脚
D1 GP20 SDIO接口的D1引脚
D2 GP21 SDIO接口的D2引脚
SD_CS/D3 GP22 SDIO接口的CS/D3引脚

Pico-ResTouch-LCD-2.8 004.jpg
注意Pico接入方向,Pico的USB应同MicroSD卡同一方向

环境搭建

1. Arduino IDE安装Pico SDK , 点击菜单栏的Tools->Board->Boards Manager后搜索Raspberry Pi Pico ,找到对应库并点击Install进行安装 ,如下图所示
Pico-10DOF-IMU012.jpg
2. VScode(Cmake)编译环境请点击The C/C++ SDK, get-start文档的9.2. Building on MS Windows进行参考并安装
Pico-ResTouch-LCD-2.8 006.jpg
3.请参考Micropython官方文档搭建python环境,在Thonny的Tools->Options->Interprete选择Raspberry Pi Pico设备,如下图所示
Pico-10DOF-IMU013.jpg

程序下载

1. 点击下载示例程序
2. VScode(Cmake)工程请使用VScode软件打开
3. 解压示例程序,Arduino示例程序直接点击.ino打开, Micorpython示例程序请上传到Pico文件系统,如图所示
Pico-10DOF-IMU014.jpg

例程使用

Arduino

1. 打开Arduino IDE或打开.ino示例程序,点击菜单栏选择Tools->Board->Raspberry Pi Pico.如下图所示
Pico-10DOF-IMU015.jpg
2. 安装TFT_eSPI库,点击菜单栏Tools->Manage Libraty,搜索TFT_eSPI后点击安装
Pico-ResTouch-LCD-2.8 007.png
3. 配置驱动文件, 打开 Arduino 库文件目录,通常在C:\Users\xxxx\Documents\Arduino\libraries\TFT_eSPI\ , 对于ResTouch-LCD-3.5 , 将TFT_eSPI库中(User_Setups\Setup60_RP2040_ILI9341.h) (User_Setup_Select.h) 的两个文件使用示例程序文件夹Arduino\ResTouch-LCD-3.5中的文件替换,ResTouch-LCD-2.8同理,如图所示
Pico-ResTouch-LCD-2.8 008.jpg
4. 选择菜单栏File-Examples->TFT_eSPI->480*320下的示例程序,再点击Edit下方upload下载代码到Pico

VScode(Cmake)

  • 使用VScode打开示例程序中的c工程,编译下载即可

Micropython

  • 打开Thonny IDE,将python/2inch8/下文件保存到Pico文件系统,如图所示,ResTouch-LCD-3.5同理

Pico-ResTouch-LCD-2.8 009.jpg

代码简析

本例程在运行后,先显示一些字符、图案,然后再显示图片,最后再显示触摸画板功能,C例程适配Pico-ResTouch-LCD-2.8和Pico-ResTouch-LCD-3.5. 在主函数中,我们将三个主要函数按顺序放置且将TP_DrawBoard();放在死循环中即可实现上述功能

GUI_Show();
LCD_Show_bmp(Bmp_ScanDir , Lcd_ScanDir);	
TP_DrawBoard();

在使用LCD_ShowBMP用于显示图片实验前,先把资料中PIC文件夹下中的图片复制到SD卡根目录 ,然后将SD卡插入屏幕背面的SD卡卡槽里开始下载程序验证即可

  • 在这里要注意的是SD卡要是FAT格式的,对应不同屏幕需要不同像素大小图片,2.8寸图片像素大小是320×240,3.5寸像素大小是480×320,图片要是24位色深.BMP格式


本产品使用的显示控制器为ST7789(2.8inch)/ILI9488(3.5inch),我们需要通过SPI通讯协议对该控制器进行初始化,初始化函数都写在LCD_Driver.c里,可以看到在lcd_test.c文件中

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

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

  • 画点
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)


在这里也稍微做下解释,本例程显示BMP图片首先也是通过SPI协议来读取SD卡中BMP格式的图片数据,再把这些数据以图像显示出来即可
在lcd_test.c文件中,主要使用以下两个函数显示图片:

SD_Init();//SD卡初始化
LCD_Show_bmp(bmp_scan_dir,lcd_scan_dir);//显示BMP图片

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

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

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

程序提供了像素点大小为

   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图片取模软件将不同大小不同格式的图片转换成数组数据,再用我们写好的函数显示出来
  • 资料中给出了所有控制芯片的数据手册供大家参考,如果你想更加深入的了解底层函数为什么这样写,就去数据手册看看吧!

Pico快速上手

固件下载

MicroPython固件下载
Pico MicroPython.gif
C_Blink固件下载
Pico Blink.gif
教程名3
列表3
教程名4
列表4
教程名5
列表5
教程名6
列表6
教程名7
列表7
教程名8
列表8

文字教程

基础介绍

Raspberry Pi Pico的基础介绍

MicroPython系列

【MicroPython】machine.Pin类函数详解
【MicroPython】machine.PWM类函数详解
【MicroPython】machine.ADC类函数详解
【MicroPython】machine.UART类函数详解
【MicroPython】machine.I2C类函数详解
【MicroPython】machine.SPI类函数详解
【MicroPython】rp2.StateMachine类函数详解

C/C++系列

【C/C++】 Windows教程1——环境搭建
【C/C++】 Windows教程2——创建工程

Arduino IDE 系列

安装Arduino IDE

  1. 首先到Arduino官网下载Arduino IDE的安装包。
    Arduino下载2.0版本.jpg
  2. 这里选择仅下载就可以了。
    仅下载不捐赠.png
  3. 下载完成后,点击安装。
    IDE安装水印-1.gif
    注意:安装过程中会提示你安装驱动,我们点击安装即可
    Arduino驱动安装水印.jpg

Arduino IDE中文界面

  1. 第一次安装完成后,打开Arduino IDE全是英文界面,我们可以在File>Preferences切换成简体中文。
    首选项-简体中文.jpg
  2. 在Language里面选择简体中文,点击OK。
    首选项-简体中文ok.jpg

在Arduino IDE中安装Arduino-Pico Core

  1. 打开Arduino IDE,点击左上角的文件,选择首选项
    首选项水印-1.png
  2. 在附加开发板管理器网址中添加如下链接,然后点击OK
    https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

    Pico首选项.png
    注意:如果您已经有ESP32板URL,您可以使用逗号分隔 URL,如下所示:

    https://dl.espressif.com/dl/package_esp32_index.json,https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
  3. 点击工具>开发板>开发板管理器>搜索pico,由于我的电脑已经安装过了,所以显示已安装
    开发板管理器.png
    开发板管理器-1.png
国内用户
  • 因为网络原因,国内用户连接github并不稳定,我们另外提供了一份安装包,可以跳过在线的过程
  • 若已经成功配置了pico环境,可以直接跳过本章
  1. 下载rp2040压缩包,将解压的rp2040文件夹复制到如下路径下
    C:\Users\[username]\AppData\Local\Arduino15\packages

    Rp2040包.png
    注意:将里面用户名:[username]替换成自己的用户名

第一次上传程序

  1. 按住Pico板上的BOOTSET按键,将pico通过Micro USB线接到电脑的USB接口,待电脑识别出一个可移动硬盘(RPI-RP2)后,松开按键。
    Pico连接数据线.gif


  1. 下载程序,打开arduino\PWM\D1-LED路径下的D1-LED.ino
  2. 点击工具>端口,记住已有的COM,不需要点击这个COM(不同电脑显示的COM不一样,记住自己电脑上已有的COM)
    Pico连接前端口.png
  3. 用USB线将驱动板和计算机连接起来,再点击工具>端口,第一次连接选择uf2 Board,上传完成后,再次连接就会多出一个COM口
    Pico连接后uf2.png
  4. 点击工具>开发板>Raspberry Pi Pico/RP2040>Raspberry Pi Pico
    工具pico开发板.png
    Arduono-Raspberrypi pico.png
  5. 设置完成后,点击向右箭头上传将程序
    Pico上传程序.png
  • 如果期间遇到了问题,需要重新安装或者更换Arduino IDE版本时,卸载Arduino IDE需要卸载干净,卸载软件后需要手动删除C:\Users\[name]\AppData\Local\Arduino15这个文件夹内的所有内容(需要显示隐藏文件才能看到) 再重新安装

开源例程

MircoPython视频例程(github)
MicroPython固件/Blink例程(C)
树莓派官方C/C++示例程序 (github)
树莓派官方micropython示例程序 (github)
Arduino官方C/C++示例程序 (github)


图纸


技术支持

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

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