吴忠躺衫网络科技有限公司

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

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

3天內不再提示

LVGL開發入門教程

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 2025-01-03 15:23 ? 次閱讀

第12章 LVGL開發入門

12.1 LVGL開發簡介

12.1.1 LVGL介紹

LVGL(Light and Versatile Graphics Library)是一個開源的嵌入式圖形庫,由Gábor Kiss-Vámosi于2016年創建,遵守MIT協議。目前由來自世界各地的志愿者共同維護和開發。

LVGL

LVGL具有輕量級、多功能、靈活和可移植等特點,可以幫助開發者快速和方便地創建美觀和功能豐富的GUI。LVGL適用于各種嵌入式平臺,并且支持多種操作系統,例如Linux、Windows、RTOS等,可運行于多種硬件板卡上。LVGL還支持多種不同分辨率的顯示器、多種接口的觸摸屏。LVGL還提供了多種語言的綁定,例如Python、Micropython、JavaScript等,并提供多種開發工具,例如模擬器、視覺化設計器、字體轉換器等。

LVGL支持多種控件:圓弧、動畫圖像、進度條、按鈕、按鈕矩陣、日歷、圖表、畫布、復選框、下拉列表、圖象、圖像按鈕、鍵盤、標簽、線條、菜單、消息框、滾輪、標尺、滑動條、跨度、旋轉框、旋轉器、開關、表、文本框、平鋪視圖、窗口等。使用LVGL可以制作風格多樣的界面,比如:

12.1.2 LVGL內部機制

使用LVGL創建出各個圖標并在屏幕上顯示之后,以按鈕圖標為例,它如何及時地響應用戶的點擊操作?以溫濕度圖標為例,如何及時地更新它的數據?LVGL使用“timer”來實現。

操作圖標時,要先點擊觸摸屏。我們會為觸摸屏創建一個輸入設備(“lv_indev_t”),并為它創建一個timer,通過這個timer周期性地讀取鼠標的輸入數據。以“packagesLVGL-v8.3.11 estssrclv_test_init.c”為例,注冊鼠標設備時,內部注冊了一個timer:

acb63e48-c988-11ef-9310-92fbcf53809c.png

LVGL的主循環會周期性地調用上述的“lv_indev_read_timer_cb”函數,它里面將調用“lv_test_mouse_read_cb”得到鼠標數據,然后發送給被選中的圖標。

假設有圖標被用來顯示溫濕度值,我們也會為這個圖標添加一個timer,通過這個timer周期性地讀取溫濕度值并更新圖標。比如:

acd28cd8-c988-11ef-9310-92fbcf53809c.png

LVGL的主循環會周期性地調用上述的“label_speed_timer”函數,它里面將讀取溫濕度傳感器的數值,并更新“label_speed”的文字。

這些定時器都是在LVGL的主循環里被調用的,主循環如何得到這些定時器?它們都被放入一個鏈表里:

acf1e326-c988-11ef-9310-92fbcf53809c.png

怎么處理_lv_timer_ll鏈表里的各個timer?LVGL里有一個循環,代碼如下:

ad0766b0-c988-11ef-9310-92fbcf53809c.png

12.2 開發第1個LVGL程序

本節課程演示如何編譯、運行第1個LVGL程序。

12.2.1 下載源碼

這些源碼可以在網盤資料中看到,你可以不必自己下載:

ad153e52-c988-11ef-9310-92fbcf53809c.png

RemiPi上運行的是Linux系統,支持的顯示設備是基于Framebuffer的。所以,可以從LVGL官網下載“lv_port_linux_frame_buffer”:它是基于Linux的、支持Framebuffer的示例程序。

如下圖所示下載v9.0版本:

ad482eca-c988-11ef-9310-92fbcf53809c.png

在“lv_port_linux_frame_buffer”里,含有編譯工具、LVGL 的源碼鏈接(“如上圖步驟4所示,就是LVGL源碼鏈接”)。“lv_port_linux_frame_buffer”里,“lvgl”子目錄是空的,我們需要下載LVGL v9.1的源碼放到“lvgl”目錄里(LVGL9.0有些問題)。點擊上圖步驟4的“lvgl”,如下圖操作:

ad65b45e-c988-11ef-9310-92fbcf53809c.png

把“lv_port_linux_frame_buffer-release-v9.0.zip”、“lvgl-9.1.0.zip”分別解壓后,得到“lv_port_linux_frame_buffer-release-v9.0”、“lvgl-9.1.0”,把后者目錄下的所有文件復 制進“lv_port_linux_frame_buffer-release-v9.0/lvgl”目錄下。

在Ubuntu下可以執行以下命令解壓:

左右滑動查看完整內容

$ unzip lv_port_linux_frame_buffer-release-v9.0.zip
$ unzip lvgl-9.1.0.zip
$ mv lvgl-9.1.0/* lv_port_linux_frame_buffer-release-v9.0/lvgl/

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5092

    文章

    19177

    瀏覽量

    307638
  • 開源
    +關注

    關注

    3

    文章

    3402

    瀏覽量

    42711
  • 圖形庫
    +關注

    關注

    0

    文章

    18

    瀏覽量

    9045
  • LVGL
    +關注

    關注

    1

    文章

    91

    瀏覽量

    3081

原文標題:LVGL開發入門 - RZ MPU工業控制教程連載(45)

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    FPGA入門教程

    FPGA入門教程 FPGA 入門教程 1 .數字電路設計入門 2 .FPGA 簡介 3 .FPGA 開發流程 4 .RTL設計 5 .QuartusⅡ設計實例 6.ModelS
    發表于 08-11 11:40

    ALIENTEK MiniSTM32開發入門教程20101122

    ALIENTEK MiniSTM32開發入門教程20101122ALIENTEK MiniSTM32開發入門教程20101122.pdf
    發表于 07-04 05:23

    ALIENTEK MiniSTM32開發入門教程20101122

    ALIENTEK MiniSTM32開發入門教程20101122ALIENTEK MiniSTM32開發入門教程20101122.pdf
    發表于 07-09 01:08

    LittleVGL (LVGL)入門知識

    LittleVGL (LVGL)干貨入門教程四之制作和使用中文漢字字庫前言:閱讀前,請確保你至少擁有以下條件:已實現顯示API(教程一已實現, 鏈接:LittleVGL (LVGL)入門教程
    發表于 07-15 10:06

    LVGL的文件系統(fs)API對接

    LittleVGL (LVGL)干貨入門教程三之LVGL的文件系統(fs)API對接。前言:閱讀前,請確保你擁有以下條件:你的項目已經完成“FatFS”的移植(例如你可以用FatFS進行SD卡的文件
    發表于 08-09 08:38

    LVGL的輸入設備API對接

    LittleVGL (LVGL)干貨入門教程二之LVGL的輸入設備(indev)API對接前言:閱讀前,請確保你擁有以下條件:你已經完成“顯示API”的移植。你已經實現了一個屏幕的觸摸驅動 (如果你
    發表于 01-18 10:12

    FPGA/SOPC開發快速入門教程

    FPGA/SOPC開發快速入門教程
    發表于 08-06 16:56 ?79次下載
    FPGA/SOPC<b class='flag-5'>開發</b>快速<b class='flag-5'>入門教程</b>

    FPGA/SOPC開發快速入門教程_elecfans.com

    FPGA/SOPC開發快速入門教程_elecfans.com
    發表于 11-09 14:02 ?18次下載

    硬件工程師入門教程

    硬件工程師入門教程硬件工程師入門教程硬件工程師入門教程硬件工程師入門教程硬件工程師入門教程
    發表于 01-05 15:53 ?258次下載

    UG1926:ADuCM420開發系統:入門教程

    UG1926:ADuCM420開發系統:入門教程
    發表于 03-22 15:48 ?5次下載
    UG1926:ADuCM420<b class='flag-5'>開發</b>系統:<b class='flag-5'>入門教程</b>

    UG-481:ADuCRF101開發系統入門教程

    UG-481:ADuCRF101開發系統入門教程
    發表于 04-30 10:04 ?8次下載
    UG-481:ADuCRF101<b class='flag-5'>開發</b>系統<b class='flag-5'>入門教程</b>

    UG-829:ADuCM310開發系統入門教程

    UG-829:ADuCM310開發系統入門教程
    發表于 05-15 14:09 ?7次下載
    UG-829:ADuCM310<b class='flag-5'>開發</b>系統<b class='flag-5'>入門教程</b>

    UG-457:ADuCM360開發系統入門教程

    UG-457:ADuCM360開發系統入門教程
    發表于 05-24 08:29 ?23次下載
    UG-457:ADuCM360<b class='flag-5'>開發</b>系統<b class='flag-5'>入門教程</b>

    UG-910:ADuCM322開發系統入門教程

    UG-910:ADuCM322開發系統入門教程
    發表于 05-26 18:04 ?12次下載
    UG-910:ADuCM322<b class='flag-5'>開發</b>系統<b class='flag-5'>入門教程</b>

    VScode嵌入式開發入門教程

    VScode嵌入式開發入門教程1.VScode進行單片機嵌入式開發教程2.單片機開發環境的搭建3.相關技巧與設置
    發表于 11-03 09:51 ?44次下載
    VScode嵌入式<b class='flag-5'>開發</b>之<b class='flag-5'>入門教程</b>
    博彩百家乐官网最新优惠| 百家乐官网谋略| 百家乐官网乐百家娱乐场| 百家乐最佳注码法| 风水24山走水| 百盛百家乐的玩法技巧和规则| 大发888赌场是干什么的| 百家乐官网磁力录| 三国百家乐官网的玩法技巧和规则 | 利博娱乐城开户| 澳门百家乐官网玩法与游戏规则| 线上百家乐官网怎么玩| 微信百家乐群二维码| 邳州市| 帝王百家乐官网的玩法技巧和规则| 里尼的百家乐策略| 永利博线上娱乐城| 运城百家乐官网的玩法技巧和规则 | 互博百家乐现金网| 大发888下载17| 百家乐官网群121398015| 百家乐赌博代理合作| 大赢家足球即时比分| 战神百家乐官网的玩法技巧和规则 | 凌龙棋牌游戏大厅| 百家乐家| 乐平市| 百家乐路纸表格| 棋牌中心| 米其林百家乐官网的玩法技巧和规则 | 立博百家乐的玩法技巧和规则| 法拉利百家乐的玩法技巧和规则| 百家乐官网教父方法| 百家乐赌缆十三式| 名山县| 网上百家乐作弊下载| 澳门赌场小姐| 百家乐赢钱lv| 神木县| 百家乐赌博大全| 百家乐官网桌蓝盾在线|