AM335x Linux平台LVGL演示项目源码说明(持续更新中)

嵌入式Linux屏与安卓屏选型实战:开机时间、稳定性、TCO三维决策法 嵌入式显示系统选型本质是确定性与可靠性的工程权衡。嵌入式Linux凭借精简启动链路(U-Boot→内核→轻量GUI)、严格隔离的软硬件边界和可预测的实时行为,在工业HMI、车载中控、数字标牌等场景中展现出显著优势;而安卓虽具备成熟应用生态与丰富UI能力,但其Java虚拟机、Binder IPC、动态服务调度等机制天然引入非确定性延迟与故障扩散风险。真正影响产品成败的并非SoC参数,而是开机时间标准差、OTA失败率、三年总拥有成本(TCO)等可量化指标。本文基于27个真实产线项目数据,聚焦嵌入式Linux屏与 阅读详情

目录

1. 项目整体结构

2. 核心目录说明

2.1 lvgl目录

2.2 lv_drivers目录

2.3 thirdpart目录

3. 应用程序目录(apps)详解

3.1 helloworld组件

3.2 smarthome组件

3.3 template组件

3.4 tests组件

4. 构建系统

5. 开发流程

6. 注意事项


1. 项目整体结构

项目源码托管地址:https://gitcode.com/am335xt3/lvgl.git

驱动源码托管地址:https://gitcode.com/am335xt3/drivers.git

LVGL项目采用模块化设计,主要包含以下核心目录:

├── apps                            # 应用程序目录
│   ├── helloworld              # Hello World示例应用
│   ├── smarthome            # 智能家居演示程序
│   ├── template                # 应用开发模板
│   └── tests                      # 测试程序集合
│       ├── databaseTest    # 数据库测试
│       ├── lnxfsTest            # 文件系统测试
│       └── virtboardTest     # 虚拟键盘测试
│       ├── videoTest            # 视频播放器测试
├── lvgl                             # LVGL核心库
├── lv_drivers                   # 设备驱动库
├── thirdpart                     # 第三方依赖库
│   ├── tslib                      # 触摸屏驱动库
│   ├── sqlite3                  # 数据库支持
│   └── ffmpeg                  # 多媒体支持
├── driver                         # 系统驱动源码,需要单独下载
│   ├── rtl8188eu              # 8188eu驱动
└── doc/                            # 项目文档

2. 核心目录说明

2.1 lvgl目录

LVGL核心库,提供图形界面的基础框架和控件:

  • src:源代码目录,包含核心组件、绘图引擎、控件等
  • demos:官方演示程序
  • examples:使用示例

2.2 lv_drivers目录

设备驱动库,支持多种显示和输入设备:

  • display:显示设备驱动(framebuffer、DRM等)
  • indev:输入设备驱动(触摸屏、按键等)

2.3 thirdpart目录

第三方依赖库:

  • tslib:触摸屏驱动库
  • sqlite3:数据库支持
  • ffmpeg:多媒体支持

3. 应用程序目录(apps)详解

3.1 helloworld组件

基础示例应用,展示LVGL基本功能的使用。

├── src/
│   ├── main.c          # 主程序入口
│   ├── dump.c          # 调试辅助功能
│   └── mouse_cursor_icon.c  # 鼠标光标图标

主要特性:

  • 演示基本GUI控件的使用
  • 包含鼠标光标支持
  • 提供调试信息输出

3.2 smarthome组件

智能家居演示程序,展示完整的应用开发案例

├── src/
│   ├── com/           # 通用组件
│   ├── drv/           # 驱动适配
│   ├── pages/         # 界面页面
│   │   ├── splash_page    # 启动页面,显示应用启动动画
│   │   ├── login_page     # 登录页面,提供用户认证界面
│   │   ├── home_page      # 主页面,智能家居控制中心
│   │   ├── logo_icon      # Logo图标资源
│   │   └── page_manager   # 页面管理器,处理页面切换
│   ├── main.c         # 主程序
│   └── lv_app_conf.h  # 应用配置
├── images/            # 图片资源
└── doc/               # 组件文档

主要特性:

  • 完整的智能家居控制界面
  • 模块化的页面设计
  • 包含虚拟键盘等高级控件

3.3 template组件

应用开发模板,为新应用开发提供基础框架。

├── src/
│   └── main.c        # 模板主程序
├── images/           # 图片资源目录
└── doc/              # 文档目录

主要特性:

  • 提供标准的项目结构
  • 包含基础配置和框架代码
  • 便于快速启动新项目

3.4 tests组件

测试程序集合,用于功能验证和开发测试。

├── databaseTest/     # 数据库测试
├── lnxfsTest/        # 文件系统驱动测试,目的是linux下不使用驱动符号,未成功
├── videoTest/        # 视频播放器测试
└── virtboardTest/    # 虚拟键盘测试

主要特性:

  • 数据库操作测试
  • 文件系统驱动功能测试
  • 视频播放器测试
  • 虚拟键盘功能测试

4. 构建系统

项目使用CMake构建系统:

  • CMakeLists.txt:主构建配置文件
  • toolchain.cmake:交叉编译工具链配置

每个组件都包含独立的CMakeLists.txt文件,支持灵活的构建配置。

5. 开发流程

  1. 参考helloworld示例了解基本用法
  2. 基于template组件创建新应用
  3. 参考smarthome组件学习完整应用开发
  4. 使用tests组件进行功能测试

6. 注意事项

  • 遵循项目的目录结构规范
  • 合理使用现有组件和示例代码
  • 注意文档和资源文件的管理
  • 保持良好的代码组织和注释
arduino-esp32:LVGL项目(一)整体框架 每个模块都整合了一类的功能,每个模块的GUI部分使用LVGL提供的API来绘制,数据和逻辑部分使用NRF来和底层交互。 由于arduino这个编译器提供的编辑器的局限性,所以这里使用的是外部编辑器sublime。虽然把所有的代码都写在一个文件夹并不是一个好的习惯,但是这里还是由于arduino的特殊性,这部分的代码都整合在了同一个ino工程文件里,代码总量是1900多行,其中GUI部分大概占了60%,剩下的就是数据处理部分了。... 阅读详情

相关推荐

LVGL+FreeRTOS实战项目:智能健康助手(硬件选型与接口设计篇)

本文详细介绍了基于LVGL和FreeRTOS的智能健康助手硬件选型与接口设计。通过STM32主控芯片、SPI接口TFT屏及多种传感器(如MAX30102、MPU6050)的合理配置,实现健康数据监测与交互功能。重点解析了多I2C设备共存、电源管理及PCB布局等实战经验,为嵌入式开发者提供可靠参考方案。

weixin_29168393的博客 344

项目经验分享:LVGL编程举例

与绝大多数GUI组件相似,LVGL的GUI组件主要包括Lable(标签)、Button(按键)、Image(图片)、Image Button(图片按钮)、Keyboard(键盘)、Calendar(日历表)、Chart(数据表)等。LVGL中所有的组件对象都是由lv_obj_t来定义的,并通过对应的组件创建函数lv_XXX_create来创建相关的对象。lv_scr_act()表示对组件赋予显示功能。

Donald_Shallwing的博客 1万+

基于STM32和LVGL的智能仪表盘项目应用示例

利用STM32强大的嵌入式处理能力与LVGL图形库的高效渲染,构建出流畅的智能仪表盘界面,展现了LVGL在实际项目中的卓越表现和高可用性。

weixin_32921023的博客 1243

LVGL+FreeRTOS实战项目:智能健康助手(LVGL篇)

本篇主要会教大家如何利用LVGL的各个控件来生成我们精美的GUI界面,并且教会大家如何的去进行界面的切换、和将任务获取到的传感器数值显示到我们的屏幕上面,最后告诉大家如何将我们的按键移植进去我们的LVGL当中。至此,关于这个项目的LVGL知识点大概已经全部讲完了,这个已经把大概思路告诉大家了,至于细节部分,得大家多多揣摩一下源码了,我相信,只要肯多看,不会就去搜,那么所有问题就不是问题了。

m0_74676415的博客 3520

LVGL 源码分析大全

LVGL 是一款流行的免费和开源嵌入式图形库,为纯C的轻量级GUI框架,支持framebuffer直接渲染图层,因此LVGL能更容易为 MCU、MPU等显示设备开发漂亮的UI。可视化的 UI 编辑器官方上有推荐使用工具。当然,也可以选择 NXP(恩智浦半导体) 提供的工具。........................

Bigan(安)的博客 1万+

Visual-Studio运行LVGL仿真项目(已配置好可直接运行)

能直接运行! Lvgl官网提供的项目代码,已经补全了部分缺少的子项目代码,解压缩后点击sln文件即可打开,直接运行官网Demo

LVGL+FreeRTOS实战项目:智能健康助手(软件篇)

本项目采用 STM32F411CEU6 作为主控,结合 LVGL 图形界面库和 FreeRTOS 实时操作系统,实现智能健康监测与交互功能。系统集成多个传感器(和多个模块(蜂鸣器、蓝牙模块),实现了实时数据显示、菜单切换、蓝牙通信等功能。软件部分是智能健康助手项目的核心,通过模块化设计实现了功能的层次化和逻辑化。外设部分负责数据采集和硬件控制,FreeRTOS 部分管理任务调度和资源分配,LVGL 部分提供了直观的交互界面。LVGL+FreeRTOS实战项目:智能健康助手(无源蜂鸣器​​篇)

m0_74676415的博客 2354

在STM32上实现LVGL的优质项目.zip(皆可应用在毕设/课设/大作业/实训/竞赛/项目开发)

嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会及时为你解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明,项目具体内容可查看下方的资源详情。 【附带帮助】: 若还需要嵌入式物联网单片机相关领域开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步。 【本人专注嵌入式领域】: 有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为你提供帮助,优快云博客端可私信,为你解惑,欢迎交流。 【建议小白】: 在所有嵌入式开发中硬件部分若不会画PCB/电路,可选择根据引脚定义将其代替为面包板+杜邦线+外设模块的方式,只需轻松简单连线,下载源码烧录进去便可轻松复刻出一样的项目 【适合场景】: 相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多功能

【LVGL】SquareLine Studio入门基础操作

在本小节中将介绍SquareLine Studio中支持任意自定义开发板,我们称之为Open Board Platform(OBP),简单来说,这意味着您可以创建一个模板项目和一个相邻的scripture文件,将他们复制到SquareLine Studio的文件夹中,该开发板将出现在SquareLine Studio的开发板列表中,并且您将能够为其导出项目。首先我们需要一个项目作为起点,这里以STM32F429-disco开发板为例,文件保存在Github上,Github超链接。

小浪宝宝的博客 2万+

私募pp网-私募排行js逆向

在数据采集的学习过程当中,发现了一个有意思的网站,所以记录一下,仅供学习交流,用于其他用途与作者无关。目标:私募基金当中的列表页数据。

zzp28218的博客 1895

深入解析SDC时钟约束:从create_clock到set_clock_groups的实战指南

本文深入解析SDC时钟约束,从create_clock到set_clock_groups的实战应用,帮助数字芯片设计工程师掌握时序约束的核心技巧。通过详细讲解时钟三要素(波形定义、不确定性和时钟关系)及实战案例,提升时钟约束的精准性和效率,避免常见设计陷阱。

weixin_29274337的博客 1077

【快速入门 LVGL】-- 1、STM32 工程移植 LVGL

保姆级 STM32 移植 LVGL 图解!一步步带你实现:官方下载、裁剪、显示注册、触摸注册、控件显示 ......

qq_49053936的博客 8万+

DRAM知识整理系列(三):部分时序参数整理

一、tCL-tRCD-tRP-tRAS(第一时序) 内存是根据行和列寻址的,当请求触发后,最初是tRAS(Active to precharge Delay),预充电后,内存才真正开始初始化RAS(Row Address Strobe)。一旦tRAS激活后,RAS开始进行需要数据的寻址。首先是行地址,然后初始化tRCD(RAS to CAS Delay),周期结束,接着通过CAS(Column Address Strobe)访问所需数据的十六进制地址。其中,从CAS开始到CAS结束,就是CAS延迟(即t

不吃鱼的猫的博客 7万+

LVGL 课程项目教程

LVGL 课程项目教程 1. 项目目录结构及介绍 LVGL 课程项目的目录结构如下: lvgl-courses/ ├── docs/ │ ├── images/ │ └── README.md ├── examples/ │ ├── basic/ │ ├── advanced/ │ └── README.md ├── lvgl/ │ ├── src/ │ ├── inc...

gitblog_00484的博客 752

Unity之如何实现哔哩哔哩直播弹幕游戏

什么是直播间互动?当我们使用哔哩哔哩进行直播或者观看视频时,我们可以通过接入哔哩哔哩提供的 直播&互动玩法SDK,让直播和视频可以与Unity3D游戏客户端或者游戏服务器进行互动。

TxNet 1540

实战案例四:Claude Code + Excel 技能处理表格数据

Excel 是商业世界中最通用的数据工具。无论是财务报表、销售数据还是项目计划,Excel 无处不在。本案例将展示如何利用 Claude Code 的 Excel 技能,自动化处理复杂的表格数据,告别繁琐的手工操作。

gaoxiang_120的专栏 475

项目(3) - LVGL 图形用户界面(GUI)库

CC = arm-linux-gnueabihf-gcc # 指定交叉编译器:用于在x86主机编译ARM架构的程序= lvgl # LVGL库的目录名(默认lvgl)LVGL_DIR?= ${shell pwd} # LVGL库的根路径(默认当前目录,可通过外部传入覆盖)CFLAGS?= -O3 -g0 -I$(LVGL_DIR)/ -std=gnu99 # 编译选项LDFLAGS?= -lm -lpthread # 链接选项BIN = demo # 最终生成的可执行文件名CC。

m0_74911141的博客 2884

【知识图谱】neo4j安装与配置_社区版_2025(附完整安装软件包)

(经历过各种版本NEO4J,遇见杂七杂八的各种问题,也看过非常多很好的教程,特此来分享一下,为大家排排坑。

知识靠谱的博客 2万+

LVGL+STM32项目练习

lvgl项目,主控改为了STM32F407ZGT6,外加1M SDRAM 除了时钟,温湿度(视频里模块坏掉了),大气压检测外,增加了定位模块(ATGM336H外接的)来同步时间,NES游戏通过VS1053B模块输出音频,,增加了中文字库,支持简单的文本阅读,保存书签(不支持章节目录索引),使用了文件系统和freertos等,具体看视频。。。只画了扩展版,主控板是优信电子买的!!...

u010227439的博客 4373

无线充电Qi协议正向通信FSK的解调设计

常见的FSK解调方法是使用频率锁相环(PLL)来跟踪输入信号中的频率变化。PLL根据输入信号的频率变化来生成数字信号,从而实现FSK信号的解调。本文将详细介绍无线充电Qi协议正向通信FSK的解调设计,并提供相应的源代码。在上述示例代码中,我们首先定义了FSK解调的参数,包括采样率、载波频率、每个比特的持续时间和比特判定阈值。最后,通过比较滤波后的信号与比特判定阈值,我们将解调后的数字数据转换为0和1的序列。请注意,上述代码仅为示例,实际的解调设计可能需要根据具体的应用场景和系统要求进行调整和优化。

IunScala的博客 2441

DeerFlow 系列教程 第二十篇 | 前端定制与二次开发指南

支持的语言定义在locale.tsLocale 检测采用三级降级策略Cookie 优先:检查localeCookie浏览器语言默认值en-US.value;if (locale!DeerFlow 使用管理主题切换,在根布局中通过主题相关的 CSS 变量定义在中(约 10KB)。: boolean;// 是否支持深度思考。

weixin_43674738的博客 220

LVGL在VScode中安装模拟器运行配置笔记教程

LVGL(Light and Versatile Graphics Library,轻巧而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。本文主要讲述如何实现在VScode中实现LVGL模拟器环境的搭建运行。

weixin_49337111的博客 5万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

LVGL 介绍

LVGL(Light and Versatile Graphics Library)是一个免费的开源嵌入式图形库,提供了创建具有易于使用的图形元素、优美的视觉效果和低内存占用的嵌入式GUI所需的一切。

qq_59527512的博客 2188

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【快速入门 LVGL】STM32 工程移植 LVGL

本文介绍了如何在STM32工程中移植LVGL(Light and Versatile Graphics Library)图形库。LVGL是一个功能强大的模块化图形库,支持多种图形组件、输入设备和硬件平台,且资源占用低。移植过程包括以下几个步骤: LVGL简述:LVGL提供丰富的图形组件和高级图形引擎,支持多种输入设备,且不依赖特定硬件平台,最低资源占用为64 kB Flash和16 kB RAM。 复制STM32工程:准备一个满足硬件和软件要求的STM32工程,确保堆栈大小设置为0x1000,并准备好画点函

指尖动听知识库 5882

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

LVGL应用和部署(嵌入式项目管理)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         个人做嵌入式管理,不仅仅是代码的编写,还涉及到代码、文档和电路图的管理。因为涉及的内容比较多,所以还是建议大家在平时开发的时候,就养成合理管理项目的习惯。每一个项目都要去做好、管理好、服务好客户,这样才能持续推动项目的发展。那一般的项目,自己要如何管理呢?

嵌入式-老费,一个分享专业嵌入式知识的blog 719

C 语言开发者的 LVGL 入门指南:从基础到实战

LVGL作为轻量级嵌入式GUI库,凭借其16KB的内存占用和64KB的Flash需求成为资源受限设备的理想选择。该库提供60+预制控件和跨平台兼容性,支持从8位单片机到多核处理器,采用C语言实现降低学习门槛。开发流程涵盖环境搭建、对象模型理解、事件处理及样式定制,并通过仪表盘案例演示了动画实现与性能优化技巧。典型问题解决方案涉及内存管理、显示校准等核心挑战,配合SquareLineStudio工具可提升开发效率。建议开发者通过官方教程入门,逐步实践复杂界面开发,以适应物联网设备对友好人机交互日益增长的需求。

weixin_60265904的博客 4078
上一篇: LVGL组件设计之虚拟键盘
下一篇: RTL8188UE移植到AM335x+Linux系统
aiprtem
博客等级 码龄15年 282粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值