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


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

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);
图5展示了另一个重要功能“my_touchpad_read”。它是读取GT911触控事件并向LVGL报告坐标(x和y)时最具挑战性的功能。这两个“Serial.println()”函数用于调试;你可以注释或删除它们。
图6展示了设置功能。I²C和LVGL的初始化过程清晰。图7显示了LVGL输入设备及其附加功能(LV_INDEV_TYPE_POINTER和“my_touchpad_read”)的注册。

图8展示了代码声明、初始化和定义:头部、I²C地址、I²C引脚、TFT_eSPI和LVGL。
图9展示了用于读取触摸事件的I²C读写函数。
我用面包板和线路测试了代码和硬件(见图10)。液晶屏和触摸屏工作流畅无瑕。
该代码可轻松适用于RP2350,无需或轻微修改(见图11)。RP2350 是树莓派有限公司推出的下一代微控制器,设计为广泛使用的 RP2040 的继任者。它为树莓派Pico 2提供动力,保持了与原始Pico形态的兼容性,同时引入了关键增强功能。RP2350 采用双核 ARM Cortex-M0+ 处理器,与 RP2040 相同,但增加了集成无线连接、更多 SRAM 以及潜在的功耗提升和外设集成等新功能。
它内置 520KB 的 SRAM,几乎是 RP2040 的两倍,并通过专用的 QSPI 接口支持最多 16MB 的外接闪存或 PSRAM。标准的Pico 2主板配备4MB闪存。

1 MCU代码