欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

阿里开发板_STM32_littleVGl开源GUI图形库的移植

程序员文章站 2024-02-25 18:08:09
...

littleVGl开源GUI图形库的移植

一. 准备工作

二. 移植

  1. 在官网的的GitHub项目库中获取源码阿里开发板_STM32_littleVGl开源GUI图形库的移植

  2. 将下载的lvgl-master文件解压到自己的工程文件夹目录下

  3. lvgl-master文件夹重命名为lvgl

  4. lvgl文件夹中的lv_conf_template.h复制到lvgl文件夹的同级目录下,并重命名为lv_conf.h ,文件结构如图:

    阿里开发板_STM32_littleVGl开源GUI图形库的移植

  5. 打开lv_conf.h配置文件,将#if 0 改为 #if 1 ,设置屏幕的高宽像素以及颜色参数。如图:
    阿里开发板_STM32_littleVGl开源GUI图形库的移植

  6. lvgl文件夹下的src文件夹下的所有得xx.c文件添加到keil工程当中。
    阿里开发板_STM32_littleVGl开源GUI图形库的移植

  7. 添加头文件路径
    阿里开发板_STM32_littleVGl开源GUI图形库的移植

  8. 在你需要用到的littlevGL的文件添加#include “lvgl.h”

  9. 在main函数中调用lv_init();初始化函数

  10. 设置显示缓冲区

    //设置显示缓冲区,如下代码
    static lv_disp_buf_t disp_buf;		//定义变量disp_buf
    static lv_color_t buf[LV_HOR_RES_MAX * 10];   //声明缓冲区大小
    lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 10);  //初始化显示缓冲区
    
  11. 注册屏幕写点函数

    //像素打点,函数注册
    lv_disp_drv_t disp_drv;           	//定义变量disp_drv
    lv_disp_drv_init(&disp_drv);      	//初始化
    disp_drv.flush_cb = my_disp_flush;  //设置驱动功能的回调函数名
    disp_drv.buffer = &disp_buf;        //将缓冲区分配给显示器
    lv_disp_drv_register(&disp_drv);    //注册驱动程序
    
  12. 实现驱动回调函数

    //回调函数的打点驱动函数实现
    void my_disp_flush(lv_disp_drv_t * disp, const lv_area_t * area, lv_color_t * color_p)
    {
        int32_t x, y;
        for(y = area->y1; y <= area->y2; y++) 
        {
            for(x = area->x1; x <= area->x2; x++)
            {
               LCD_Fast_DrawPoint( x, y,color_p->full );//自己的打点函数
               color_p++;
            }
        }
        lv_disp_flush_ready(disp); 
    }
    
  13. main函数中的while(1)里调用lv_task_handler();

  14. 配置一个1~10ms的定时器调用lv_tick_inc(x);x是定时器周期

  15. 到了这里我们的移植基本就结束了

三. 测试我们移植的littleVGl图形库是否成功

  1. 我们可以到官网查看一些示小部件进行测试我们是否移植成功
  2. 查看官方文档中的对象类型。官方文档:https://docs.littlevgl.com/en/html/object-types/win.html
  3. 找一个简单的例子将代码复制到我们的main函数中。
  4. 例如我们移植这个示例:
    阿里开发板_STM32_littleVGl开源GUI图形库的移植

阿里开发板_STM32_littleVGl开源GUI图形库的移植

  1. 效果图
    阿里开发板_STM32_littleVGl开源GUI图形库的移植
    如果对你有用,就点个赞支持一下我这位萌新博主????????
    还可以关注我的个人博客:chaungketz.top ,上面有更多个人分享经验和总结