• HMI-Board之LVGL应用


    移植

    使用默认模板工程新建一个RT-Thread项目,BSP版本为1.1.1

    在这里插入图片描述

    打开RT-Thread Settings,点击右侧箭头按钮进入详细页,在硬件栏开启以下几个配置选项(LCD、触摸屏、demo)

    在这里插入图片描述

    此时,打开board文件夹,发现下面会有一个lvgl的目录,package目录下会有LVGL和lv-music两个目录,如果没有请检查上一步有没有漏掉的步骤

    在这里插入图片描述

    编译、下载程序进行发现开发板已经运行lv-music-demo程序

    在这里插入图片描述

    界面定制

    接下来安装SquareLine Studio,定制自己的lvgl界面,我这里下载的是SquareLine_Studio_1.3.3_Setup.exe,一路默认安装就可以了

    在这里插入图片描述

    安装完需要登录账号才能使用,没有账户的请注册一下

    在这里插入图片描述

    选择Create下的NuMaker-HMI-M467项目,然后CREATE

    在这里插入图片描述

    这个工程自带Sreen,先随意拖几个控件到Screen1上面

    在这里插入图片描述

    导出ui文件到指定文件夹lvgl-demo,生成源代码文件:Export -> Export UI Files

    在这里插入图片描述

    生成的源代码文件如下

    在这里插入图片描述

    拷贝上面的文件夹到lvgl工程的目录packages\lv_music_demo-v0.3.4下面

    在这里插入图片描述

    把lv_demo_music函数改一下改成下面

    /**
     * @file lv_demo_music.c
     *
     */
    
    /*********************
     *      INCLUDES
     *********************/
    
    
    #include "lv_demo_rtt_music.h"
    #include "lvgl-demo/ui.h"
    
    #if LV_USE_DEMO_RTT_MUSIC
    void lv_demo_music(void)
    {
        ui_init();
    }
    #endif /*LV_USE_DEMO_RTT_MUSIC*/
    

    先清理一下工程,然后再重新构建,没有问题的话lvgl-demo的文件夹会被加到工程目录中去

    在这里插入图片描述

    Ctrl + F5启动调试,编译下载程序后,自定义的界面已经可以在开发板上面显示

    在这里插入图片描述

    源码分析

    用调试器抓一下lvgl的启动过程,基本分为以下几个步骤

    INIT_ENV_EXPORT :lvgl线程接口作为初始化环境被系统调用

    lvgl_thread_init:lvgl线程初始化

    lvgl_thread_entry:启动GUI线程,这里会设置一些跟显示屏相关的参数(分辨率、彩色位数等)

    lv_init();
    
    lv_port_disp_init();
    
    lv_port_indev_init();
    
    lv_user_gui_init();
    

    lv_user_gui_init:自定义用户代码,最终会调用到ui_init

  • 相关阅读:
    还在每天玩单调的控制台窗口?赶紧进来!!!用EasyX画出自己的优美窗口(万字教程,一文入门)
    Codeforces Round #818 (Div. 2) E. Madoka and The Best University(gcd性质+莫比乌斯反演φ)
    C++ "链链"不忘@必有回响之双向链表
    山西电力市场日前价格预测【2023-09-19】
    Thymeleaf简要学习笔记(转自代码重工)
    Gloss优化
    2022 AI趋势8大预测
    【Codeforces Round #813 (Div. 2)(A~C)】
    01背包&完全背包学习记录
    具有容错功能的键值对存储服务
  • 原文地址:https://blog.csdn.net/HeavenMo/article/details/139426694