首页
新闻中心

利用ILI9488显示器、GT911电容式触摸和LVGL-9.x在树莓派Pico上进行触摸屏图形界面开发

展期活动
发布时间:2026-05-26 11:41
摘要:该项目展示了利用树莓派Pico(RP2040)微控制器集成了一台4英寸480×320 ILI9488具电容触控功能的TFT LCD。该代码由Arduino IDE开发,利用广泛使用的TFT_eSPI库,实现与ILI9488显示控制器的高效SPI通信。触摸界面方面,GT911电容触摸面板通过I²C连接,并通过自定义手动编写代码处理触摸事件。...

该项目采用LVGL(轻量与多功能图形库)创建交互式图形用户界面。它是一个强大的开源嵌入式图形界面库,专为微控制器优化。树莓派Pico Pico的双核RP2040处理器提供足够的性能来管理显示渲染和实时触摸交互。

4英寸ILI9488液晶屏

Z400IT005-DCT-TN 是一款 4.0 英寸 TFT LCD 模块,集成了由 GT911 触摸控制器驱动的电容式触摸面板。它采用 RGB565 彩色格式,支持高达 65,000 色的 480×320 像素分辨率,实现生动细致的图像渲染。该显示器采用ILI9488驱动IC,兼容多种接口,包括3线SPI、4线SPI和8/16位并行MCU接口。该项目的显示配置为8位4线SPI(通过拉出IM0、IM1和IM2引脚),用于树莓派Pico(RP2040)板。

TFT面板采用全透射显示模式,意味着背光必须处于激活状态,图像才能显示。它包含一个8LED白背光阵列,采用并联配置,典型工作电流为120mA,电压约为3.1V。建议使用限流电阻以防止长期过热和背光损坏。

图1显示了液晶显示器的物理形状,图2显示了其引脚排列。

图1:配备GT911电容触摸(物理版)的4英寸ILI9488液晶。
图1:配备GT911电容触摸的4英寸ILI9488液晶(实体)

图2:4英寸ILI9488液晶显示器,配备GT911电容触摸(引脚排列)。
图2:配备GT911电容触摸(引脚)的4英寸ILI9488液晶屏

RP2040 MCU(RP Pico)

RP2040 是由树莓派开发的一款微控制器,于2021年1月发布。它旨在以低成本提供高性能,是嵌入式系统、业余爱好者项目和专业应用的极佳选择。基于RP2040 MCU的多个Pico主板变体已被多家公司开发,但首个官方Pico主板见图3。您可以使用任何Pico主板变体来遵循本文操作。请阅读制造商文档,查找其I/O图以修改配置文件。

图3:由树莓派基金会开发的官方Raspberry Pi Pico板(2MB Flash)。
图3:由树莓派基金会开发的官方树莓派Pico板(2MB Flash)

RP2040 微控制器规格

  • CPU:双核Arm Cortex-M0+(最高133 MHz)

  • SRAM:264 KB(分为银行)

  • 存储:无内置闪存,需外接QSPI闪存(支持最高16 MB)

  • GPIO:30个引脚(其中4个可用作ADC)

输入输出接口

  • 2×SPI,2×I²C,2个×UART

  • 16个×PWM信道

  • 8 × PIO(可编程输入输出)用于定制外设

  • USB:支持 主机和设备的 USB 1.1

  • 功率:1.8V至3.3V操作

  • 其他功能:硬件乘法器/除法器、浮点单元、看门狗定时器和实时时钟(RTC)

代码

图4展示了LVGL的冲洗函数。它是LVGL中最重要的函数之一,许多初学者在这方面感到困难。“tft”对象是从“TFT_eSPI”类推导出来的,用来写出“my_disp_flush”:

TFT_eSPI tft = TFT_eSPI(TFT_HOR_RES, TFT_VER_RES);

图4:LVGL-9冲洗函数。
图4:LVGL-9冲洗函数

图5展示了另一个重要功能“my_touchpad_read”。它是读取GT911触控事件并向LVGL报告坐标(x和y)时最具挑战性的功能。这两个“Serial.println()”函数用于调试;你可以注释或删除它们。

图5:“my_touchpad_read”函数。
图5:“my_touchpad_read”函数

图6展示了设置功能。I²C和LVGL的初始化过程清晰。图7显示了LVGL输入设备及其附加功能(LV_INDEV_TYPE_POINTER和“my_touchpad_read”)的注册。

图6:Arduino“设置”功能。
Figure 6: Arduino “setup” function

Figure 7: LVGL input device.
图7:LVGL输入设备

图8展示了代码声明、初始化和定义:头部、I²C地址、I²C引脚、TFT_eSPI和LVGL。

图8:代码初始化。
图8:代码初始化

图9展示了用于读取触摸事件的I²C读写函数。

图9:I²C读写函数。
图9:I²C读写函数

测试

我用面包板和线路测试了代码和硬件(见图10)。液晶屏和触摸屏工作流畅无瑕。

图10:面包板测试硬件和代码。
图10:硬件和代码的面包板测试

未来工作

该代码可轻松适用于RP2350,无需或轻微修改(见图11)。RP2350 是树莓派有限公司推出的下一代微控制器,设计为广泛使用的 RP2040 的继任者。它为树莓派Pico 2提供动力,保持了与原始Pico形态的兼容性,同时引入了关键增强功能。RP2350 采用双核 ARM Cortex-M0+ 处理器,与 RP2040 相同,但增加了集成无线连接、更多 SRAM 以及潜在的功耗提升和外设集成等新功能。

它内置 520KB 的 SRAM,几乎是 RP2040 的两倍,并通过专用的 QSPI 接口支持最多 16MB 的外接闪存或 PSRAM。标准的Pico 2主板配备4MB闪存。

图11:Arduino Board Manager 中的树莓派 Pico 2 选择。
图11:树莓派Pico 2在Arduino Board Manager中的选择

参考文献

1 MCU代码


最新资讯
0.034941s