HMI-Board开发板工程在添加新组件时LVGL组件会报错的解决办法

电子说

1.3w人已加入

描述

在使用HMI-Board开发板开发lvgl的GUI界面设计时,可以直接在官方提供的lvgl的demo中开发,这样就可以省去lvgl最初的繁琐配置步骤,这里真的要感谢官方,将最繁琐的一步帮我们省去了,可以更加专注于LVGL的开发。

但是在这个基础上再添加新组件,编译的时候就会报出一些错误,如下图所示。

RT-Thread

报错信息的话我看像是缺少一些文件,但如何添加这些文件我是不清楚的,但我是用另一种方法解决这个问题。下面直接说怎么做。

1、首先,进入RT-Thread Settings,将LVGL版本由latest更换为v8.3.1,并将LVGLdemo的使能关闭,最后将music的demo关闭,步骤如下图顺序所示。在Setting中找这些设置可以直接在右上角搜索lvgl,能够快速确定这些设置的位置。

RT-Thread

RT-Thread

这样组件配置就完成了,再添加其他组件就不会对工程造成影响了(其实并不是添加新组件导致bug,而是latest版lvgl的问题,仅个人见解,如有错误欢迎指正)。

2、然后将配置保存,再进入hal_entry.c文件中,添加一个lv_user_gui_init函数。这个函数现在是空的,需要自己添加自己的界面设计函数进去。

void lv_user_gui_init(void)
{
}
这个函数是GUI界面设计的入口函数,在rt-thread中,GUi的设计从这里开始。

3、编译,编译结果如下图所示。

RT-Thread

三个警告不用管它。

以上就是我针对HMI-Board开发板工程在添加新组件时LVGL组件会报错的解决办法。
下面的图片是我简单绘制的一个按钮示例。

RT-Thread

RT-Thread

注意,我将lv_user_gui_init函数放在hal_entry.c文件中,仅是做一个展示,建议新建一个.c文件来存放lv_user_gui_init函数。这里提供一个样例:

#include "rtconfig.h"
#include "lvgl.h"
void lv_user_gui_init(void)
{
lv_obj_t *switch1;
switch1 = lv_switch_create(lv_scr_act());
lv_obj_set_size(switch1, 100, 50);
lv_obj_set_align(switch1, LV_ALIGN_CENTER);
}

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分