0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RT-Thread LVGL触摸屏对接记录

冬至子 来源:螺丝松掉的人 作者:螺丝松掉的人 2023-08-07 17:22 次阅读

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

RT-Thread 目前已经支持 LVGL,4.1.1 版本之后(含4.1.1)移植 LVGL 的时候,只需要完善lv_conf.h 、lv_port_disp.c、 lv_port_indev.c 这三个文件即可,这三个文件的作用在后面介绍。

开始移植之前,需要检查使用的显示和输入设备是否已经有驱动支持,如果没有驱动支持的话需要自行对接,不对接到 RT-Thread 的设备框架,直接驱动也是可以的。

准备工作

这里默认显示和触摸的驱动已经没有问题,这次移植我使用的触摸屏显示芯片为 st7796 ,触摸芯片为 gt911 。

首先可以直接复制一个已经对接好的 LVGL 文件作为模板,再在此基础上进行修改,例如 rt-thread-masterbspstm32stm32l475-atk-pandoraapplicationslvgl ,结合板卡情况修改其中的lv_conf.h 、lv_port_disp.c、 lv_port_indev.c 三个文件即可, SConscript 自行按需修改。

LVGL 配置文件

lv_conf.h 为 lVGL 配置文件,其中需要配置一些显示器的主要参数,移植时至少要配置好一下三个选项

LV_HOR_RES_MAX 显示器的水平分辨率。
LV_VER_RES_MAX 显示器的垂直分辨率。
LV_COLOR_DEPTH 颜色深度,其取值对应如下:
8 - RG332
16 - RGB565
32 - (RGB888和ARGB8888)
对接显示接口
在lv_port_disp.c中对接 LVGL 的显示接口,根据已有的模板,最重要的是对接以下接口

/*Flush the content of the internal buffer the specific area on the display
You can use DMA or any hardware acceleration to do this operation in the background but
'lv_disp_flush_ready()' has to be called when finished. /
static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)
{
/
color_p is a buffer pointer; the buffer is provided by LVGL */
//在这里填入对应显示驱动的加载接口
//示例:
//lcd_load(area->x1, area->x2, area->y1, area->y2, color_p);
/*IMPORTANT!!!
Inform the graphics library that you are ready with the flushing /
lv_disp_flush_ready(disp_drv);
}
在注释的地方填入自己显示驱动的对应接口即可,需要注意传入的参数顺序和类型。

还需要初始化 lv_disp_buf_t 和 lv_disp_drv_t 变量,

对接触摸输入接口

在lv_port_indev.c中对接 LVGL 的输入接口,LVGL 支持多种类型的输入设备,例如触摸,键盘,编码器等,我这里使用的是触摸类型。

输入接口必须初始化 lv_indev_drv_t 变量,最重要的是实现其 read_cb 回调函数,从而获取触摸信息。其余具体配置可以查看:Input device interface — LVGL documentation

对接完成以后,记得检查 Kconfig 以及 scons 的相关配置。可以运行 demo 进行测试基本功能,例如触摸点是否准确,点击滑动等是否正常,显示刷新是否正常等。

需要提醒大家注意的一个点:确保触摸和显示的坐标是否对应。

可以看出只要显示和输入设备的驱动没有问题,对接 LVGL 是很快的。那么行动起来,让 LVGL 运行起来吧!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 触摸屏
    +关注

    关注

    42

    文章

    2290

    浏览量

    115970
  • RT-Thread
    +关注

    关注

    31

    文章

    1271

    浏览量

    39904
  • STM32L4
    +关注

    关注

    1

    文章

    42

    浏览量

    9385
  • RGB屏
    +关注

    关注

    0

    文章

    9

    浏览量

    1156
  • LVGL
    +关注

    关注

    1

    文章

    79

    浏览量

    2904
收藏 人收藏

    评论

    相关推荐

    RT-Thread记录(一、版本开发环境及配合CubeMX)

    RT-Thread 学习记录的第一篇文章,RT-Thread记录(一、RT-Thread 版本、RT-T
    的头像 发表于 06-20 00:28 5125次阅读
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>记录</b>(一、版本开发环境及配合CubeMX)

    RT-Thread记录(二、RT-Thread内核启动流程)

    在前面我们RT-Thread Studio工程基础之上讲一讲RT-Thread内核启动流程.
    的头像 发表于 06-20 00:30 4957次阅读
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>记录</b>(二、<b class='flag-5'>RT-Thread</b>内核启动流程)

    RT-Thread NUC97x 移植 LVGL

    不涉及 rt-thread 驱动,但是它是 LVGLrt-thread 的接口。LVGLrt-thread 上运行的基石。
    发表于 07-08 09:37 1466次阅读

    RT-Thread Studio使用记录资料汇总

    。刚好手头有一块吃灰很久的触摸屏,再薅上嘉立创的羊毛做块板子,准备做个触摸小玩具。一、 做板 设计尽量使用手边有的元器件,节省开支。芯片用 STM32F407VE ,再添加上 FLASH 、TF 卡
    发表于 03-22 10:26

    在基于PC的RT-Thread模拟器上搭建LVGL图形库

    前言RT-Thread 当前的版本:4.1.0,通过简单的配置就可以支持最新的LVGL图形库,LVGL图形库以软件包的方式加入工程LVGL 可以认为是当前开源、免费的优秀GUI的图形库
    发表于 06-13 11:03

    RT-Thread编程指南

    RT-Thread编程指南——RT-Thread开发组(2015-03-31)。RT-Thread做为国内有较大影响力的开源实时操作系统,本文是RT-Thread实时操作系统的编程指南
    发表于 11-26 16:06 0次下载

    RT-Thread Smart已正式上线

    构建或其他的构建工具,例如xmake,cmake等,并对接 RT-Thread 在线软件包;同时支持 POSIX,方便 Linux 应用的移植。
    的头像 发表于 11-29 10:31 2775次阅读

    记录——基于 RT-Thread 实现 USB 虚拟串口

    记录——基于 RT-Thread 实现 USB 虚拟串口记录一下我在正点原子 F429 阿波罗开发板上实现 USB 虚拟串口的过程,希望可以帮助到其他想要学习 USB 的人。首先,我更新了一下
    发表于 12-02 17:21 6次下载
    <b class='flag-5'>记录</b>——基于 <b class='flag-5'>RT-Thread</b> 实现 USB 虚拟串口

    RT-Thread学习笔记 RT-Thread的架构概述

    RT-Thread 简介 作为一名 RTOS 的初学者,也许你对 RT-Thread 还比较陌生。然而,随着你的深入接触,你会逐渐发现 RT-Thread 的魅力和它相较于其他同类型 RTOS
    的头像 发表于 07-09 11:27 4478次阅读
    <b class='flag-5'>RT-Thread</b>学习笔记 <b class='flag-5'>RT-Thread</b>的架构概述

    RT-Thread文档_RT-Thread 简介

    RT-Thread文档_RT-Thread 简介
    发表于 02-22 18:22 5次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>RT-Thread</b> 简介

    RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南

    RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南
    发表于 02-22 18:23 9次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>RT-Thread</b> 潘多拉 STM32L475 上手指南

    RT-Thread文档_RT-Thread SMP 介绍与移植

    RT-Thread文档_RT-Thread SMP 介绍与移植
    发表于 02-22 18:31 9次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>RT-Thread</b> SMP 介绍与移植

    基于RT-Thread Studio学习

    前期准备:从官网下载 RT-Thread Studio,弄个账号登陆,开启rt-thread学习之旅。
    的头像 发表于 05-15 11:00 3814次阅读
    基于<b class='flag-5'>RT-Thread</b> Studio学习

    基于 RT-Thread 的 RoboMaster 电控框架(一)

    记录与分享,希望能帮助到更多初识 RT-Thread 的小伙伴,也欢迎大家交流分享,指正不足,共同进步。 背景
    的头像 发表于 09-19 19:55 733次阅读

    LPC55S69对接RT-Thread PWM设备框架

    在使用 RT-Thread 的 bsp pwm 的时候,注意到 lpc55sxx 系列只对接了通用定时器2中的通道1作为 PWM 输出。但其实 LPC55S69 具备非常多的 PWM 资源。于是根据 RT-Thread 设备驱动
    的头像 发表于 10-11 15:02 650次阅读