0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

RT-Thread LVGL觸摸屏對接記錄

冬至子 ? 來源:螺絲松掉的人 ? 作者:螺絲松掉的人 ? 2023-08-07 17:22 ? 次閱讀

LVGL(輕巧而多功能的圖形庫)是一個免費的開放源代碼圖形庫,它提供創(chuàng)建具有易于使用的圖形元素,精美的視覺效果和低內(nèi)存占用的嵌入式GUI所需的一切。

RT-Thread 目前已經(jīng)支持 LVGL,4.1.1 版本之后(含4.1.1)移植 LVGL 的時候,只需要完善lv_conf.h 、lv_port_disp.c、 lv_port_indev.c 這三個文件即可,這三個文件的作用在后面介紹。

開始移植之前,需要檢查使用的顯示和輸入設備是否已經(jīng)有驅(qū)動支持,如果沒有驅(qū)動支持的話需要自行對接,不對接到 RT-Thread 的設備框架,直接驅(qū)動也是可以的。

準備工作

這里默認顯示和觸摸的驅(qū)動已經(jīng)沒有問題,這次移植我使用的觸摸屏顯示芯片為 st7796 ,觸摸芯片為 gt911 。

首先可以直接復制一個已經(jīng)對接好的 LVGL 文件作為模板,再在此基礎上進行修改,例如 rt-thread-masterbspstm32stm32l475-atk-pandoraapplicationslvgl ,結(jié)合板卡情況修改其中的lv_conf.h 、lv_port_disp.c、 lv_port_indev.c 三個文件即可, SConscript 自行按需修改。

LVGL 配置文件

lv_conf.h 為 lVGL 配置文件,其中需要配置一些顯示器的主要參數(shù),移植時至少要配置好一下三個選項

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

/*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 */
//在這里填入對應顯示驅(qū)動的加載接口
//示例:
//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);
}
在注釋的地方填入自己顯示驅(qū)動的對應接口即可,需要注意傳入的參數(shù)順序和類型。

還需要初始化 lv_disp_buf_t 和 lv_disp_drv_t 變量,

對接觸摸輸入接口

在lv_port_indev.c中對接 LVGL 的輸入接口,LVGL 支持多種類型的輸入設備,例如觸摸,鍵盤,編碼器等,我這里使用的是觸摸類型。

輸入接口必須初始化 lv_indev_drv_t 變量,最重要的是實現(xiàn)其 read_cb 回調(diào)函數(shù),從而獲取觸摸信息。其余具體配置可以查看:Input device interface — LVGL documentation

對接完成以后,記得檢查 Kconfig 以及 scons 的相關(guān)配置??梢赃\行 demo 進行測試基本功能,例如觸摸點是否準確,點擊滑動等是否正常,顯示刷新是否正常等。

需要提醒大家注意的一個點:確保觸摸和顯示的坐標是否對應。

可以看出只要顯示和輸入設備的驅(qū)動沒有問題,對接 LVGL 是很快的。那么行動起來,讓 LVGL 運行起來吧!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 觸摸屏
    +關(guān)注

    關(guān)注

    42

    文章

    2369

    瀏覽量

    118172
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1376

    瀏覽量

    41611
  • STM32L4
    +關(guān)注

    關(guān)注

    1

    文章

    42

    瀏覽量

    9624
  • RGB屏
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    1284
  • LVGL
    +關(guān)注

    關(guān)注

    1

    文章

    102

    瀏覽量

    3581
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    RT-Thread記錄(一、版本開發(fā)環(huán)境及配合CubeMX)

    RT-Thread 學習記錄的第一篇文章,RT-Thread記錄(一、RT-Thread 版本、RT-T
    的頭像 發(fā)表于 06-20 00:28 ?5844次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>記錄</b>(一、版本開發(fā)環(huán)境及配合CubeMX)

    RT-Thread記錄(二、RT-Thread內(nèi)核啟動流程)

    在前面我們RT-Thread Studio工程基礎之上講一講RT-Thread內(nèi)核啟動流程.
    的頭像 發(fā)表于 06-20 00:30 ?5551次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>記錄</b>(二、<b class='flag-5'>RT-Thread</b>內(nèi)核啟動流程)

    RT-Thread NUC97x 移植 LVGL

    不涉及 rt-thread 驅(qū)動,但是它是 LVGLrt-thread 的接口。LVGLrt-thread 上運行的基石。
    發(fā)表于 07-08 09:37 ?1679次閱讀

    RT-Thread Studio使用記錄資料匯總

    。剛好手頭有一塊吃灰很久的觸摸屏,再薅上嘉立創(chuàng)的羊毛做塊板子,準備做個觸摸小玩具。一、 做板 設計盡量使用手邊有的元器件,節(jié)省開支。芯片用 STM32F407VE ,再添加上 FLASH 、TF 卡
    發(fā)表于 03-22 10:26

    在基于PC的RT-Thread模擬器上搭建LVGL圖形庫

    前言RT-Thread 當前的版本:4.1.0,通過簡單的配置就可以支持最新的LVGL圖形庫,LVGL圖形庫以軟件包的方式加入工程LVGL 可以認為是當前開源、免費的優(yōu)秀GUI的圖形庫
    發(fā)表于 06-13 11:03

    RT-Thread編程指南

    RT-Thread編程指南——RT-Thread開發(fā)組(2015-03-31)。RT-Thread做為國內(nèi)有較大影響力的開源實時操作系統(tǒng),本文是RT-Thread實時操作系統(tǒng)的編程指南
    發(fā)表于 11-26 16:06 ?0次下載

    RT-Thread Smart已正式上線

    構(gòu)建或其他的構(gòu)建工具,例如xmake,cmake等,并對接 RT-Thread 在線軟件包;同時支持 POSIX,方便 Linux 應用的移植。
    的頭像 發(fā)表于 11-29 10:31 ?3051次閱讀

    記錄——基于 RT-Thread 實現(xiàn) USB 虛擬串口

    記錄——基于 RT-Thread 實現(xiàn) USB 虛擬串口記錄一下我在正點原子 F429 阿波羅開發(fā)板上實現(xiàn) USB 虛擬串口的過程,希望可以幫助到其他想要學習 USB 的人。首先,我更新了一下
    發(fā)表于 12-02 17:21 ?6次下載
    <b class='flag-5'>記錄</b>——基于 <b class='flag-5'>RT-Thread</b> 實現(xiàn) USB 虛擬串口

    RT-Thread學習筆記 RT-Thread的架構(gòu)概述

    RT-Thread 簡介 作為一名 RTOS 的初學者,也許你對 RT-Thread 還比較陌生。然而,隨著你的深入接觸,你會逐漸發(fā)現(xiàn) RT-Thread 的魅力和它相較于其他同類型 RTOS
    的頭像 發(fā)表于 07-09 11:27 ?4935次閱讀
    <b class='flag-5'>RT-Thread</b>學習筆記 <b class='flag-5'>RT-Thread</b>的架構(gòu)概述

    RT-Thread文檔_RT-Thread 簡介

    RT-Thread文檔_RT-Thread 簡介
    發(fā)表于 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 上手指南
    發(fā)表于 02-22 18:23 ?10次下載
    <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 介紹與移植
    發(fā)表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> SMP 介紹與移植

    基于RT-Thread Studio學習

    前期準備:從官網(wǎng)下載 RT-Thread Studio,弄個賬號登陸,開啟rt-thread學習之旅。
    的頭像 發(fā)表于 05-15 11:00 ?5104次閱讀
    基于<b class='flag-5'>RT-Thread</b> Studio學習

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

    記錄與分享,希望能幫助到更多初識 RT-Thread 的小伙伴,也歡迎大家交流分享,指正不足,共同進步。 背景
    的頭像 發(fā)表于 09-19 19:55 ?1131次閱讀

    LPC55S69對接RT-Thread PWM設備框架

    在使用 RT-Thread 的 bsp pwm 的時候,注意到 lpc55sxx 系列只對接了通用定時器2中的通道1作為 PWM 輸出。但其實 LPC55S69 具備非常多的 PWM 資源。于是根據(jù) RT-Thread 設備驅(qū)動
    的頭像 發(fā)表于 10-11 15:02 ?1132次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品