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

相关推荐
是一个Bug5 小时前
Agent(智能体)应用 的入门学习路径
学习·机器学习
2301_809051145 小时前
Linux 网络编程 学习笔记
linux·网络·学习
eggcode6 小时前
【Qt学习】Linux(ARM架构)在线安装Qt6.x
linux·qt·学习·arm
_李小白8 小时前
【android opencv学习笔记】Day 26: 滤波算法之低通滤波与图像缩放插值
android·opencv·学习
Bechamz8 小时前
大数据开发学习Day43
大数据·学习
happymaker062611 小时前
SpringBoot学习日记——DAY06(整合MyBatisPlus的其他功能)
java·spring boot·学习
星夜夏空9911 小时前
FreeRTOS学习(3)——FreeRTOS的移植与剪裁
学习
嵌入式×边缘AI:打怪升级日志12 小时前
硬件清单与学习进度存档
学习
Engineer邓祥浩14 小时前
软件设计师备考 第0章 题型分布、示例、学习路线
学习·职场和发展