前言:开始看到这个板子非常小巧第一反应就是想用这个板子学学lvgl,做个手表界面,这不我简单做了个手表界面,虽然功能不全,但是整体框架出来了。设设计工具是使用的国产的GUI_Guier。对于这个设计工具的使用有兴趣的可以去看看我我之前的文章:【ACM32G103RCT6】8-基于RTC和LVGL的手机时间界面 http://bbs.eeworld.com.cn/thread-1270419-1-1.html
文章开始之前先看看整体效果:
我是直接用GUI_Guier创建的工程,这里我使用了3个界面
分别作为手表主界面,菜单界面,和应用界面。
在主界面里,我是用了几个label用来显示时间和时期。然后用了一个容器来框选出一些常用的功能,比如亮度调节,wifi,蓝牙等。
我是设置了这个容器为隐藏和透明的状态,在有下滑手势的时候它才显示出来。然后上划手势的时候再次隐藏。
在菜单界面里我用了很多icon图标来表示各种各样的应用,从主界面进入菜单界面我设置了长按进入。从菜单界面回到主界面是设置的右滑手势。
最后我用app界面来表示各种各样的app,具体app的内容我没有实现, 只有一个从app界面退出到菜单界面的按钮
将所有的功能实现差不多以后直接生成代码,按照我之前的测评进行移植就好了,这里展示一下我的主函数代码,因为我们只需要在主函数调用一下setup_ui函数基本就移植成功了。
#include <stdio.h>
/* FreeRTOS */
#include <FreeRTOS.h>
#include <task.h>
#include "lv_port_disp.h"
#include "lv_port_indev.h"
#include "lvgl.h"
#include "gui_guider.h"
lv_ui guider_ui;
static void lvgl_task(void *param)
{
while (1) {
lv_task_handler();
vTaskDelay(1);
}
vTaskDelete(NULL);
}
void main()
{
lv_init();
lv_port_disp_init();
lv_port_indev_init();
lv_disp_set_rotation(NULL, LV_DISP_ROT_90);
//设计小部件的ui布局
setup_ui(&guider_ui);
lv_task_handler();
xTaskCreate(lvgl_task, (char *)"lvgl task", 512, NULL, 15, NULL);
}
总结:本期测评我用BL808全能板搭建起了一个手表界面的框架,可以看到BL808的性能非常优异,帧数稳定在50左右,这还是我在lvgl设置了的,相信如果不设置界限,它的帧数只会更高。
引用: 秦天qintian0303 发表于 2024-3-1 08:47 LVGL对于BL808全能板来说应该没问题
是的