LVGL9.5版本的基础使用学习

首先下载下来。

使用linux比较简单。

使用

mkdir build

cd build

cmake ..

make

来生成基础的.a

注意该项目故意没有直接给出配置头文件!

所以会编译失败。

这时需要拷贝lv_conf_template.h为需要的配置文件lv_conf.h

这里面的宏需要修改来开启需要的功能。

例如需要开启例子相关的,里面还有更细的demos,需要看哪个还需要勾选:

/** Enable examples to be built with the library. */

#define LV_BUILD_EXAMPLES 1

/** Build the demos */

#define LV_BUILD_DEMOS 1

总之,所有的功能都是需要该配置文件进行处理的。

编译会生成对应的.a文件。

接着直接在主目录进行编写测试程序:

复制代码
//! main.c
#include "lvgl.h"
// Demos (你之前看的):是完整的、大型的应用界面(如整套音乐播放器、性能跑分软件)。Examples (这个文件):是细小的、针对特定功能的教学代码(通常只有 20-50 行)。
#include "demos/lv_demos.h"
#include "examples/lv_examples.h"
static lv_display_t* hal_init(void)
{
  //lv_display_t* disp = NULL;

  /* TODO: init display and indev */
    
	// 1. 创建 SDL 窗口
  // 参数:宽度, 高度
  lv_display_t * disp = lv_sdl_window_create(800, 480);
  
  // 2. 初始化 SDL 鼠标输入(模拟触摸屏)
  lv_sdl_mouse_create();
  
  // 3. (可选) 初始化 SDL 键盘
  lv_sdl_keyboard_create();

  return disp;
}

int main(int argc, char ** argv)
{
  lv_init();

  lv_display_t* disp = hal_init();
  if (disp == NULL) {
    LV_LOG_ERROR("lv_demos initialization failure!");
    return 1;
  }
  
  // 直接可以使用参数如music等查看各个demo
  /*
  if (!lv_demos_create(&argv[1], argc - 1)) {
    lv_demos_show_help();
    goto demo_end;
  }
  */
  
  // example是用于学习更细节的东西的
  //动画,基础,布局等
  //lv_example_anim_1();
  //lv_example_get_started_4();
  //lv_example_grad_1();
  //lv_example_flex_2();
  //lv_example_grid_1();
  
  //lib各种库方便使用
  // 例如gif.需要先开启LV_USE_GIF
  //lv_example_gif_1();
  
  //
  
  //lv_example_scroll_1();
  //lv_example_style_1();
  
  
  //widgets
  //lv_example_canvas_1();
  //lv_example_dropdown_1();
  //lv_example_menu_1();
  //lv_example_msgbox_1();
  //lv_example_table_1();
  //lv_example_tabview_1();
  //lv_example_tileview_1();
  lv_example_win_1();
  
  while (1) {
    uint32_t delay = lv_timer_handler();
    if (delay < 1) delay = 1; /*delay for at least 1 ms*/
    else if(delay == LV_NO_TIMER_READY) delay = LV_DEF_REFR_PERIOD; /*handle LV_NO_TIMER_READY. Another option is to `sleep` for longer*/
    usleep(delay * 1000);
  }

demo_end:
  lv_deinit();
  return 0;
}

这里注意我使用了sdl2来进行快速的应用开发仿真,并没有实际的硬件

编译命令:

gcc -o lvgl_demo sim_main.c -I./ -I./lvgl -L./build/lib -llvgl_demos -llvgl_examples -llvgl_thorvg -llvgl -lSDL2 -lm -lpthread

然后将注释中的demos放开,或者例子来查看。

如demos:

./lvgl_demo music

相关推荐
进阶的猪18 小时前
Linux 内核移植过程学习
linux·学习
SteveSenna18 小时前
aubo学习:设置TCP
学习
茯苓gao18 小时前
嵌入式开发笔记:工业机器人通信协议深度解析——从现场总线到工业以太网
笔记·嵌入式硬件·学习·机器人·信息与通信
取地址符19 小时前
Rust语法学习 (基于Rustlings)(1):基础语法
经验分享·笔记·学习·rust
绝世番茄19 小时前
VisualEffect 视觉特效鸿蒙HarmonyOS ArkTS原生学习
学习·华为·harmonyos·鸿蒙
xiaoduzi199120 小时前
ConcurrentHashMap学习
java·学习
zzzll111120 小时前
LangChain实战-RAG问答机器人
学习·计算机·程序员·大模型
霸道流氓气质20 小时前
Java 工程师 AI 智能体学习路线 · 阶段 4:智能体(Agent)核心原理 详解
java·人工智能·学习
北鸟南游20 小时前
学习-claude code 工程化实战的笔记-极客时间
笔记·学习·ai编程
心中有国也有家20 小时前
AtomGit Flutter 鸿蒙客户端:呼吸练习的三种科学模式
学习·flutter·华为·harmonyos