首页 > 编程语言 >系统编程-lvgl

系统编程-lvgl

时间:2024-08-22 20:29:43浏览次数:13  
标签:匹配 函数 -- glob 编程 系统 int lvgl

带界面的MP3播放器 -- lvgl

目录

带界面的MP3播放器 -- lvgl

一、什么是lvgl?

二、简单使用lvgl

在工程中编写代码

实现带界面的mp3播放器

main.c

events_init.c

events_init.h

补充1:glob函数

补充2:atexit函数


一、什么是lvgl?

-- LVGL是一个开源的嵌入式图形库,用于创建图形界面应用程序。它提供了丰富的图形元素和用户界面控件,能够在各种嵌入式平台上运行,包括单片机和微处理器。

-- Gui和LVGL是两个相关的概念。

  • GUI是指图形用户界面,是用户与计算机进行交互的界面。
  • LVGL是一个开源的GUI库,可以用于创建嵌入式系统中的图形用户界面。

-- lvgl提供了一套丰富的图形绘制和交互功能,可以在嵌入式设备上创建漂亮、交互式的用户界面。它支持多种显示控制器和输入设备,并具有高度可定制性。

-- 因此,Gui和LVGL的关系是,LVGL是一种用于创建Gui的库或工具。使用LVGL,开发人员可以更容易地实现各种功能的图形界面,从而提升用户体验

二、简单使用lvgl

  • 1、首先将安装包复制到linux虚拟机中 

    alt text

  • 2、安装需要的库
sudo apt-get install libsdl2-dev
  • 3.安装好之后,进行软件的安装
sudo dpkg -i 软件名
  • 4、在左下角的应用找到,打开即可 

    alt text

  • 5、创建项目(可以改项目生成代码的路径) 

    alt text

  • 6、lvgl相关操作

-- 1 

alt text

-- 2 

alt text

-- 3 

alt text

-- 4 设置好之后点击上面的生成代码 会在设置好的路径下生成我们的项目文件 

注!!!要确保组件弄正确后再生成代码,如果后续在项目中将代码改过后,然后又回来改组件再次生成代码,那么原先的代码会被覆盖!!!功能模块就要重新写

alt text

-- 5 生成好之后 在项目得了路径下使用make进行项目的编译 

alt text

-- 6 生成的可执行文件放在 该路径下的build下的bin里面,有一个simulator文件: 

alt text

在工程中编写代码

-- 工程代码中我们会使用到的源文件,只用改变两个文件即可 ,这里有的函数头文件可能会报红,不用管,只要能make成功即可。

alt text

实现带界面的mp3播放器

main.c

alt text

alt text


events_init.c

alt text

alt text


events_init.h

alt text


 


补充1:glob函数

-- 在 Linux 中, C 语言的 glob 函数用于根据给定的模式查找文件名。 它实现了类似于 shell 的通配符匹配功能

-- 函数原型:

  • int glob(const char *pattern, int flags, int (*errfunc)(const char *epathname, int eerrno), glob_t *pglob);

-- 函数参数

  • const char * pattern:要匹配的路径模式。例如," * .c" 会匹配当前目录下的所有 C 源文件。

  • int flags:控制匹配行为的标志。这些标志可以是以下之一或多个(使用按位或 | 运算符组合):
    -- GLOB_ERR:在访问某个路径时发生错误时,glob 函数会立即返回错误。如果未设置此标志,glob 将在出现错误时继续处理后续路径。
    -- GLOB_MARK:在匹配到的路径名称后面添加一个斜杠(/),表示这是一个目录。
    -- GLOB_NOSORT:不对匹配结果进行排序,结果将按照文件系统的顺序返回。
    -- GLOB_DOT:匹配以点 (.) 开头的文件(如 .git),默认情况下,glob 不匹配这些文件。

  • int (*errfunc)(const char *epathname, int eerrno):一个可选的回调函数,用于处理错误。如果为 NULL,不调用此函数。

  • glob_t *pglob:指向 glob_t 结构的指针。该结构用于存储匹配结果。glob_t 结构定义如下:
    -- gl_pathc:匹配到的路径数量。 -- gl_pathv:指向字符串数组的指针,其中存储了所有匹配的路径。

typedef struct {  
    size_t gl_pathc;      
    char **gl_pathv;      
    size_t gl_offs;       
} glob_t;

alt text

alt text

-- 去给的路径下找相应通配符的文件。结果存在结构体中。

补充2:atexit函数

-- atexit 是一个 C 标准库函数,用于注册在程序正常终止时会被调用的函数。

-- 函数原型:

#include <stdlib.h>  

int atexit(void (*func)(void));

-- 函数参数

  • func:指向无参数且返回类型为 void 的函数的指针。当 exit 被调用时,这个函数将被执行。

-- 函数返回值

  • 如果成功,atexit 返回 0。如果发生错误(如超出可注册函数的数量),则返回非零值。

alt text

标签:匹配,函数,--,glob,编程,系统,int,lvgl
From: https://blog.csdn.net/m0_71813740/article/details/141436904

相关文章

  • Python 基础:编程概念
    在黑客和网络安全领域,这通常意味着BASH和Python脚本。Python脚本在网络安全专业人士中最受欢迎,因为它拥有丰富的库和模块,可用于网络安全(你可以使用任何编程语言进行网络安全,但如果有人已经用Python等语言编写了轮子,那么你的生活就会轻松得多)。如果你检查Kali中的工具,你会......
  • 基于nodejs+vue血库管理系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码毕设程序文件开题报告内容研究背景在医疗体系中,血液作为拯救生命的重要资源,其管理与调配的高效性直接关系到患者救治的成功率与生命安全。随着医疗技术的不断进步和临床需求的日益增长,传统的人工......
  • 操作系统-线程
    一、线程介绍线程是操作系统能内够进行运算、执行的最小单位,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。​ 总结:线程是进程的一部分,是进程内负责执行的单位,进程是由资源单位(......
  • 基于Springboot+vue的学生网上请假系统
    文章底部获取项目源码联系方式【万字文档+源码】基于Springboot+vue的学生网上请假系统-可用于毕设-课程设计-练手学习1系统概述1.1研究背景随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管......
  • 【精选】基于Python的热门旅游景点数据分析系统的设计与实现(南京旅游,北京旅游,旅游网站
    目录: 系统简介:  关键技术介绍2.1PYTHON语言简介2.2MySql数据库2.3DJANGO框架2.4Hadoop介绍2.5Scrapy介绍2.6B/S架构 系统总功能结构设计系统详细实现:6系统测试系统测试的目的软件测试过程测试用例为什么选择我: 博主介绍:  ✌我是阿龙,一名......
  • 【精选】基于大数据的___银行信用卡用户的数仓系统的设计与实现(全网独一无二,最新定制)
    目录: 关键技术介绍 PYTHON语言简介大数据介绍 MySql数据库DJANGO框架 Hadoop介绍Scrapy介绍B/S架构 系统的设计系统总功能模块设计系统测试系统测试的目的软件测试过程6.3测试用例参考代码:为什么选择我:博主介绍:✌我是阿龙,一名专注于Java技术领域的......
  • Linux系统中利用消息队列实现两个进程的通信
    在Linux系统中进程间的通信有很多的方法,这次利用消息队列实现进程的通信进程一的代码实现#include<sys/types.h>#include<sys/ipc.h>#include<stdio.h>#include<sys/msg.h>#include<sys/types.h>#include<sys/ipc.h>#include<string.h>structmsgbuf{ ......
  • 操作系统-进程
    一、进程1、进程介绍进程与程序:程序是存储在磁盘上的可执行文件,里面包含可执行的机器指令和数据的静态实体;进程是处于活跃状态的计算机程序,也就是正在运行中的程序一个运行中的程序,可能由多个进程组成,但至少要有一个进程,称为主进程,同时可以通过系统调用创建出若干个子进程同......
  • 文件系统和文件 API 安全性缺失指南
    要确定攻击者是否能够读取ours/secret文件的内容,我们可以逐步分析以下情况:文件创建和所有权:一个以root身份运行的系统守护进程创建了ours/secret文件,文件所有权为root:wheel,权限为rwx------(700)。这意味着只有root用户可以读取、写入和执行这个文件。POSIXACL:为攻击......
  • ELK日志分析系统
    ELK ELK是一套开源的日志分析系统,由elasticsearch+logstash+Kibana组成。官网说明:https://www.elastic.co/cn/products首先:先一句话简单了解E,L,K这三个软件elasticsearch:分布式搜索引擎logstash:日志收集与过滤,输出给elasticsearchKibana......