[原创] 【Sipeed 博流BL808全能板】5-手表界面开发

qiao---   2024-2-29 19:02 楼主

前言:开始看到这个板子非常小巧第一反应就是想用这个板子学学lvgl,做个手表界面,这不我简单做了个手表界面,虽然功能不全,但是整体框架出来了。设设计工具是使用的国产的GUI_Guier。对于这个设计工具的使用有兴趣的可以去看看我我之前的文章:【ACM32G103RCT6】8-基于RTC和LVGL的手机时间界面 http://bbs.eeworld.com.cn/thread-1270419-1-1.html

 

文章开始之前先看看整体效果:

IMG_8586

 

我是直接用GUI_Guier创建的工程,这里我使用了3个界面

image.png  

分别作为手表主界面,菜单界面,和应用界面。

在主界面里,我是用了几个label用来显示时间和时期。然后用了一个容器来框选出一些常用的功能,比如亮度调节,wifi,蓝牙等。

image.png  

我是设置了这个容器为隐藏和透明的状态,在有下滑手势的时候它才显示出来。然后上划手势的时候再次隐藏。

在菜单界面里我用了很多icon图标来表示各种各样的应用,从主界面进入菜单界面我设置了长按进入。从菜单界面回到主界面是设置的右滑手势。

image.png  

最后我用app界面来表示各种各样的app,具体app的内容我没有实现, 只有一个从app界面退出到菜单界面的按钮

image.png  

将所有的功能实现差不多以后直接生成代码,按照我之前的测评进行移植就好了,这里展示一下我的主函数代码,因为我们只需要在主函数调用一下setup_ui函数基本就移植成功了。

 

image.png  

#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设置了的,相信如果不设置界限,它的帧数只会更高。

Watch.zip (20.91 MB)
(下载次数: 0, 2024-2-29 19:01 上传)
本帖最后由 qiao--- 于 2024-2-29 19:04 编辑

回复评论 (2)

LVGL对于BL808全能板来说应该没问题    

在爱好的道路上不断前进,在生活的迷雾中播撒光引
点赞  2024-3-1 08:47
引用: 秦天qintian0303 发表于 2024-3-1 08:47 LVGL对于BL808全能板来说应该没问题    

是的

点赞  2024-3-3 22:51
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复