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

littleVGl开源GUI图形库的移植

一. 准备工作

二. 移植

  1. 在官网的的GitHub项目库中获取源码在这里插入图片描述

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

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

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

  5. 打开lv_conf.h配置文件,将#if 0 改为 #if 1 ,设置屏幕的高宽像素以及颜色参数。如图:
    在这里插入图片描述

  6. lvgl文件夹下的src文件夹下的所有得xx.c文件添加到keil工程当中。
    在这里插入图片描述

  7. 添加头文件路径
    在这里插入图片描述

  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. 例如我们移植这个示例:
    在这里插入图片描述

在这里插入图片描述

  1. 效果图
    豆腐干地方
    如果对你有用,就点个赞支持一下我这位萌新博主🤭🤭
    还可以关注我的个人博客:chaungketz.top ,上面有更多个人分享经验和总结
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值