RT-Thread下LPC55S69的LVGL移植适配

2023-06-15 09:19:40 来源:恩智浦MCU加油站

LVGL(轻巧而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。

本文使用LPC55S69_EVK开发板,ST9976显示驱动,GT911触摸驱动,实现RT-Thread下LVGL的移植适配。


(资料图)

硬件搭建

1.触摸屏使用的是NXP-LCDM-S 模块,搭载ST9976 显示芯片和GT911触摸芯片:

2. 将NXP-LCDM-S模块通过PMOD接口接入到LPC55S69_EVK上,简单操作无难度,直接插上即可:

3.将准备好的USB线连接到LPC55S69的P6(DebugLink)上。 LPC55S69与NXP-LCDM-S 模块各IO接口与功能之间的对应关系表

LPC55S69_EVK 引脚NXP-LCDM-S 模块引脚说明
P0_14SCLI2C1_SCL
P0_13SDAI2C1_SDA
P0_4CSSPI3_SSEL0
P0_3MOSISPI3_MOSI
P0_2D/CD/C
P0_6WRSPI3_SCK
P1_28INTINT
P1_22RSTRST

触摸屏的基本驱动

1. 触摸屏使用NXP-LCDM-S 模块,搭载ST9976 显示芯片和GT911 触摸芯片,在开始移植适配 LVGL 驱动之前,需要先将 ST9976 和GT911 分别对接到 RT-Thread 的LCD 和Touch 设备框架. 如果用作个人使用,也可不对接,向 LVGL 提供 LCD画点接口和触摸点读取接口即可;

2. 首先进行 ST9976 显示芯片的驱动,ST9976 与 LPC55s69 之间通过四线SPI 通讯,需要将NXP-LCDM-S 模块背面的跳线拨为111,如下图所示:

3. LCD驱动对接完成后进行显示测试,如图:

4. 接下来进行 GT911 触摸芯片的驱动对接,需要注意的是 GT911 可以通过操作 RST 和 INT 引脚设置不同的 I2C 从机通讯地址,并且由于触摸屏模块中 ST7796 和 GT911 共用同一个 RST 引脚,操作的时候需要特别注意;

5. GT911 触摸驱动对接完后进行测试,串口打印触摸点坐标;

6. ST7796 和 GT911 同时驱动测试,在屏幕上显示触摸的轨迹,从而进一步测试显示和触摸的坐标系是否对应,测试效果如下:

LVGL的移植适配

显示和触摸驱动对应好后就可以开始 操作LVGL 的移植适配:首先可以复制一个已经对接好的 LVGL 文件作为模板,在此基础上进行修改,例如rt-thread-masterspstm32stm32l475-atk-pandoraapplicationslvgl ,结合板卡情况修改其中的lv_conf.h 、lv_port_disp.c、lv_port_indev.c 三个文件即可, SConscript 自行按需修改。

1. 对接显示接口:在lv_port_disp.c中对接 LVGL 的显示接口,在disp_flush 函数中填入自己的 LCD 绘制函数。

2. 对接触摸输入接口:在lv_port_indev.c中对接 LVGL 的输入接口,LVGL 支持多种类型的输入设备,例如触摸,键盘,编码器等。输入接口必须初始化 lv_indev_drv_t 变量,最重要的是实现其 read_cb 回调函数,从而获取触摸信息。

配置RT-Thread, 编译下载工程

在实验开始前,需要搭建RT-Thread开发环境,目前RT-Thread 主仓库 LPC55S69 已经适配 LVGL,可以进行使用体验。

1.进入 t-threadsplpc55sxxlpc55s69_nxp_evk目录,打开RT-Thread scons命令行配置工具, 输入menuconfig 进入配置界面:

2.进入以下目录勾选使能 LVGL 及 Demo 例程:

3.进入以下目录,检查并勾选使能对应外设:

LPC55S69 的LVGL已经配置上了,退回到scons命令行界面,首先输入 pkgs-update命令获取软件包,成功后输入scons –target=mdk5 生成新的MDK工程:

Keil-MDK project has generated successfully! Keil工程生成成功。

双击打开Project.uvprojx Keil工程文件,编译工程,下载到开发板:

下载后按一下板子上的复位按键,看到可以看到触摸屏上已经出现了日历 Demo 的界面,可以触摸调整年月份:

现在RT-Thread下LPC55S69的LVGL移植适配就完成啦!

欢迎大家快去下载体验一把,把LVGL玩起来吧!

审核编辑:汤梓红

标签:

上一篇:LDO的类型及其工作原理-焦点热闻
下一篇:最后一页