欢迎光临
我们一直在努力

LVGL应用编程入门:从零开始打造炫酷嵌入式界面

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}

在这里插入图片描述

LVGL应用编程入门:从零开始打造炫酷嵌入式界面

    • 一、什么是LVGL?一个改变嵌入式UI开发的“神奇工具箱”
      • LVGL的五大超能力:
    • 二、搭建你的第一个LVGL开发环境(超详细步骤)
      • 准备工作清单:
      • 2.1 安装基础工具(就像装电脑的“驱动程序”)
      • 2.2 获取LVGL SDK(拿到我们的“工具箱”)
      • 2.3 配置PC仿真环境(先在电脑上“模拟运行”)
    • 三、编译运行第一个LVGL程序(激动人心的时刻!)
      • 3.1 编译PC版本
      • 3.2 运行程序
    • 四、把程序“搬”到开发板上运行
      • 4.1 安装ADB工具(连接电脑和开发板的“数据线”)
      • 4.2 ADB常用命令(记这几个就够了)
      • 4.3 编译开发板版本
    • 五、SDK目录结构解析(了解我们的“工具箱”内部)
    • 六、学习资源推荐
    • 七、常见问题排错指南
    • 总结
      • 附录:快速命令备忘单

此系列公众号已更新完

一、什么是LVGL?一个改变嵌入式UI开发的“神奇工具箱”

想象一下,你要为一个智能手表设计一个漂亮的天气界面。没有LVGL之前,你可能需要:

  • 用取模软件一个个像素点画图标
  • 自己编写按钮点击检测逻辑
  • 手动处理触摸屏坐标换算
  • 为每个动画效果写复杂的算法

而有了LVGL,这一切都变得简单!

LVGL(Light and Versatile Graphics Library)是一个开源的图形用户界面库,旨在为嵌入式系统和物联网设备提供轻量级、可移植、灵活且易于使用的图形用户界面解决方案。LVGL就像是一个专为嵌入式设备准备的图形界面“万能工具箱”。它把常用的UI组件(按钮、滑块、图表等)都提前做好了,我们直接“拿来用”就行!

LVGL的五大超能力:

  • 轻巧灵活 – 能在内存很小的单片机(甚至只有32KB RAM)上运行
  • 跨平台 – 支持Linux、Windows、FreeRTOS等多种系统
  • 颜值高 – 内置抗锯齿、平滑动画,效果媲美手机APP
  • 组件丰富 – 按钮、列表、图表、仪表盘…应有尽有
  • 社区强大 – 遇到问题?全球开发者一起帮你解决!
  • 二、搭建你的第一个LVGL开发环境(超详细步骤)

    准备工作清单:

    • ✅ 安装好的VMware虚拟机
    • ✅ Ubuntu 18.04系统
    • ✅ 一颗不急不躁的心❤️

    没有安装上面环境的可以参考我之前文章:https://mp.weixin.qq.com/s/b0Fz-vPzZ4J82dpPAcOfWw

    建议也使用上面文章中vscode和ssh访问,修改代码更方便

    2.1 安装基础工具(就像装电脑的“驱动程序”)

    打开Ubuntu终端,一行命令搞定:

    # 安装GCC/G++编译器、Make构建工具、Cmake配置工具
    sudo apt-get install gcc g++ make -y

    cmake需要自己单独下载,因为命令行下载的版本太老,可以参考我之前的文章里的cmake安装部分:https://mp.weixin.qq.com/s/UMPgEI2DEUOXaplXYANgQg

    小白理解:GCC/G++是“翻译官”,把你写的C/C++代码翻译成机器能懂的语言;Make是“建筑工头”,指挥怎么编译项目;CMake是“蓝图设计师”,告诉Make项目结构是什么样的。

    2.2 获取LVGL SDK(拿到我们的“工具箱”)

    SDK是软件开发工具包,提供开发应用程序所需的库和API。这里也可以理解为是工具箱。本文我演示用的是T113开发板配套的sdk。

    方式一:直接下载(推荐给新手)

    链接: https://pan.baidu.com/s/1bcIqVQ_b1ZRRGbi9xt7DJw?pwd=vwfh 提取码: vwfh

    # 下载后解压
    tar -xzvf app_sdk.tar.gz

    方式二:如果你有开发板配套的SDK,直接使用即可

    2.3 配置PC仿真环境(先在电脑上“模拟运行”)

    # 进入SDK目录
    cd app_sdk

    # 给编译脚本添加执行权限(让它能运行)
    chmod 777 build.sh

    # 安装SDL2库(这是LVGL在电脑上显示需要的“显示器驱动”)
    sudo apt-get install libsdl2-dev -y

    三、编译运行第一个LVGL程序(激动人心的时刻!)

    3.1 编译PC版本

    # 第一次编译需要清理(建立新的编译环境)
    ./build.sh -clean

    # 编译Linux版本
    ./build.sh -linux

    看到这个就成功了!

    [100%] Built target demo

    3.2 运行程序

    ./build/app/demo

    🎉 恭喜! 你应该能看到一个长条形的窗口,里面显示了LVGL的演示界面。

    image-20260107194004345

    四、把程序“搬”到开发板上运行

    如果没有开发板,此步骤可跳过,看上面仿真的效果是一样的

    4.1 安装ADB工具(连接电脑和开发板的“数据线”)

    ADB原本是Android开发工具,现在很多Linux开发板也支持它。

    # 安装ADB
    sudo apt install adb -y

    4.2 ADB常用命令(记这几个就够了)

    命令作用例子
    adb devices 查看连接的设备 就像查看USB口插了什么设备
    adb shell 进入设备命令行 “钻进”开发板内部操作
    adb push 电脑→开发板传文件 adb push demo /user/bin
    adb pull 开发板→电脑传文件 adb pull /data/log.txt ./

    4.3 编译开发板版本

  • 配置交叉编译工具链

    找厂家获取工具链,我这里用的T113的工具链,没有开发版的小伙伴可直接用我的,因为后面是在Linux环境下仿真 https://pan.baidu.com/s/1vIZJC6sXHQxchjK-sKq3vw?pwd=nzkx 提取码: nzkx

    下载配置工具链

    # 1. 解压工具链(位置可自己选择)
    $ tar -xzvf /home/hutter/tools/toolchain-sunxi-glibc-gcc-830.tar.gz

    # 2. 查看工具链内容
    $ ls /home/hutter/tools/toolchain-sunxi-glibc-gcc-830/toolchain/bin/
    arm-openwrt-linux-gcc # 这就是ARM编译器!
    arm-openwrt-linux-g++ # ARM的C++编译器
    arm-openwrt-linux-ld # ARM链接器
    ... # 还有其他工具

    配置环境(告诉系统去哪里找“翻译官”)

    # 永久设置(添加到~/.bashrc)
    $ echo 'export STAGING_DIR=/home/你的用户名/tools/toolchain-sunxi-glibc-gcc-830/toolchain/bin:$STAGING_DIR' >> ~/.bashrc
    $ source ~/.bashrc # 立即生效

    image-20251217203202569

    修改build.sh中的路径:

    # 找到这行,改成你的实际路径
    toolchain_path="/home/你的用户名/toolchain-sunxi-glibc-gcc-830/toolchain/bin"

  • 编译T113版本

    ./build.sh -clean # 清理旧的
    ./build.sh -t113 # 编译开发板版本

  • 推到开发板运行

    adb push build/app/demo /user/bin
    adb shell
    cd /user/bin
    ./demo

  • 五、SDK目录结构解析(了解我们的“工具箱”内部)

    app_sdk/
    ├── app/ # 你的代码写在这里!
    ├── component/ # 各种组件(网络、WiFi、播放器…)
    ├── lvgl/ # LVGL核心库
    ├── platform/ # 平台相关代码
    │ ├── x86linux/ # PC仿真配置
    │ └── t113/ # 开发板配置
    └── build.sh # 一键编译脚本

    各层分工就像餐厅:

    • 应用层(你):点菜、享受美食
    • 组件层(厨师):提供各种做好的菜品
    • 适配层(传菜员):连接厨房和餐厅
    • 系统层(厨房设备):炉灶、冰箱等
    • 硬件层(食材):最基础的原料

    六、学习资源推荐

  • 官方文档(英文):https://docs.lvgl.io/master/
  • 中文参考:https://lvgl.100ask.net/8.2/
  • 示例代码:SDK中的app/demo.c就是最好的学习材料
  • 七、常见问题排错指南

    问题可能原因解决方法
    编译失败 环境没装全 重新执行安装命令
    运行没窗口 SDL2没装好 sudo apt-get install libsdl2-dev
    ADB找不到设备 没开调试模式/驱动问题 检查USB连接,重新插拔
    界面显示异常 分辨率不匹配 修改lv_drv_conf.h中的配置

    总结

    LVGL让嵌入式界面开发从“手工作坊”进入了“工业化生产”时代。通过今天的学习,你已经:

  • ✅ 理解了LVGL是什么
  • ✅ 搭建了开发环境
  • ✅ 编译运行了第一个程序
  • ✅ 了解了如何移植到开发板
  • ✅ 掌握了基本的调试方法
  • 记住:学习嵌入式UI开发就像学游泳,不要一直站在岸上看教程,跳进去写代码才是最快的进步方式!


    附录:快速命令备忘单

    # 环境安装
    sudo apt-get install gcc make cmake libsdl2-dev adb -y

    # 编译运行(PC)
    ./build.sh -clean
    ./build.sh -linux
    ./build/app/demo

    # 编译运行(开发板)
    ./build.sh -t113
    adb push build/app/demo /user/bin
    adb shell
    cd /user/bin && ./demo

    # 文件传输
    adb push 电脑文件 开发板路径
    adb pull 开发板文件 电脑路径

    此系列公众号已更新完

    赞(0)
    未经允许不得转载:171主机测评 » LVGL应用编程入门:从零开始打造炫酷嵌入式界面
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址