将littlevGL移植到nrf52840

  • Post author:
  • Post category:其他


一、什么是LittlevGL

LittlevGL是一个免费的开源图形库,提供了创建嵌入式GUI所需的一些必备组件,具有易于使用的图形元素,美观的视觉效果和非常低的内存占用。

LittlevGL最大的优点是MIT开源协议,使用LittlevGL不用考虑代码开源的问题。所有代码采用C实现,代码体积约400K,能解决许多轻量级的UI绘制问题。

二、获得LittlevGL源码

1、访问官方网站:https://littlevgl.com/

2、从GitHub中获取:https://github.com/littlevgl/lvgl

源码文件 lvgl

例程文件 lv_examples

三、开始移植



将对应的源文件添加进去,lvgl_example添加的lv_port_disp_template.c 是显示用的文件,你也可以将lv_port_disp_template.c改成lv_port_disp.c,也可不改

配置文件,源文件里是没有lv_conf.h文件的,可以用lv_conf_template.h更改过来lv_conf.h。

然后就是配置显示(我用的是1.3寸的tft屏240*240)

1、LV_HOR_RES_MAX 显示器的宽分辨率 240

2、LV_VER_RES_MAX 显示器的高分辨率 240

3、LV_COLOR_DEPTH 显示器的颜色深度,当前有8/16/32三种配置,这个选择16

4、#define LV_DPI              60//130     /*[px]*/这个显示图形的大小设置

5、#  define LV_MEM_SIZE    (16U * 1024U) //空间大小

6、去掉GPU功能:#define LV_USE_GPU              0

7、其它的宏,默认就好。

lv_port_disp.c里的宏#if 0,要改成1.

然后在main函数里添加如下函数:

void lv_demo_widgets(void)

{


/*Create an Arc*/

lv_obj_t * arc = lv_arc_create(lv_scr_act(), NULL);

lv_arc_set_bg_angles(arc, 0, 360);

lv_arc_set_angles(arc, 270, 270);

lv_obj_align(arc, NULL, LV_ALIGN_CENTER, 0, 0);

/* Create an `lv_task` to update the arc.

* Store the `arc` in the user data*/

lv_task_create(arc_loader, 20, LV_TASK_PRIO_LOWEST, arc);

}

编译成功烧录就OK啦,nrf52840目前刷屏的时候有点慢,后续再想办法 看能不能让他快速的刷屏。



版权声明:本文为u010860832原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。