黄山派lvgl8学习笔记(4)使用Gui Guider可视化工具开发黄山派
摘要:本文介绍了使用GuiGuider工具为黄山派开发LVGL界面的过程。首先下载并安装NXP的GuiGuider工具,创建与黄山派匹配的LVGL8.3.10版本项目。通过导入多语言模板demo进行界面仿真,然后将生成的custom和generated文件夹移植到黄山派的lv_user目录中。最后修改main函数,替换原有的界面初始化代码为GuiGuider生成的setup_ui()函数,完成编译
前面的部分内容,不了解可以按顺序进行。
黄山派lvgl8学习笔记(1)画一个一个全白的背景-CSDN博客
黄山派lvgl8学习笔记(2)导入头文件和新建一个按钮控件-CSDN博客
黄山派lvgl8学习笔记(3)导入陀螺仪传感器数据-CSDN博客
前面我们大概了解了黄山派如何对一些板载硬件进行初始化,感谢@同学,好好学习 大佬的提醒,在lvgl学习中还有一些可视化开发工具,我们接下来将使用Gui Guider对黄山派进行开发。

一,Gui Guider下载与初识:
GUI Guider是恩智浦(NXP)推出的一款基于开源LVGL图形库的嵌入式人机交互(HMI)开发工具,支持拖拽式可视化设计,可快速开发高性能GUI界面
下载链接在此处【免费】GUI-Guiderlvglv1.91下载资源-CSDN下载
这边还需要注册一个账号进行登录才可以,我们登陆后打开界面如下图所示

点击创建新项目,如下图所示(如果界面是英文,先照着进去工程后,才可以修改成中文)

我们选择和黄山派同样的lvgl版本v8.3.10,点击下一步

直接点击下一步
这个空白界面大家可以自行去了解 (因为博主也不咋会),我们先下载一个demo进去 ,选择组件模板后,选择右边的MultiLanguage

这里我们按照下图进行填写,然后点击创建

进入后,如下图所示

Alt+q或者点击右上角进行仿真,选择C语言,这里要稍等一下

仿真完成后,我们右上角点击工程,然后选择工程目录打开

这里,我们就看到了这个仿真工程的全貌

二,移植到黄山派上!
在我们生成的仿真代码里,我们主要用到的是custom和generated两个文件夹

我们将他们复制到前面在黄山派中,生成的lv_user文件夹里,具体可以看黄山派lvgl8学习笔记(2)导入头文件和新建一个按钮控件-CSDN博客
粘贴后,lv_user文件夹如下图所示(忽略Kconfig文件,那个是我自己生成测试的)

然后我们打开main函数,将下列头文件添加进去
#include "gui_guider.h"
#include "events_init.h"
lv_ui guider_ui;
在main函数里,将my_demo_white注释掉,并替换成
setup_ui(&guider_ui);
events_init(&guider_ui);
//my_demo_white(); 将这个函数注释掉
这里放上整个main的代码
// this file is main.c
#include "rtthread.h"
#include "bf0_hal.h"
#include "drv_io.h"
#include "littlevgl2rtt.h"
#include "lv_ex_data.h"
#include "lv_demos.h"
#include "lv_user1.h"
#include "lv_sensor.h"
#include "gui_guider.h"
#include "events_init.h"
lv_ui guider_ui;
int main(void)
{
rt_err_t ret = RT_EOK;
rt_uint32_t ms;
/*rt_kprintf("Hello world!\n");
board_io_init();
struct rt_sensor_config cfg;
sensors_init(&cfg);
rt_device_t ltr303_dev, mmc56x3_dev, lsm6d_dev, lsm6d_gyro_dev, lsm6d_step_dev;
open_and_config_devices(<r303_dev, &mmc56x3_dev, &lsm6d_dev, &lsm6d_gyro_dev, &lsm6d_step_dev);*/
/* init littlevGL */
ret = littlevgl2rtt_init("lcd");
if (ret != RT_EOK)
{
return ret;
}
lv_ex_data_pool_init();
//lv_demo_main();
setup_ui(&guider_ui);
events_init(&guider_ui);
//my_demo_white(); 将这个函数注释掉
while (1)
{
ms = lv_task_handler();
rt_thread_mdelay(ms);
}
return RT_EOK;
}
然后进行编译

编译通过,然后下载进板子即可

更多推荐



所有评论(0)