【GD32学习】 LVGL Demo测试

1 篇文章 0 订阅

文章目录


前言

        上一篇已经将lvgl源码移植到工程中,这里要配置demo例程,跑一下demo程序看看

准备

移植好lvgl的工程


一、修改  lv_port_disp.c

1、使能 lv_port_disp.c

修改头晚间包含 lv_port_disp_template改为lv_port_disp

 编译报错和警告,没有定义水平MY_DISP_HOR_RES、垂直分辨率MY_DISP_VER_RES和 最大水平分辨率MY_DISP_VER_RES

 通过这里我们可以看到如果我们没有自己定义 水平MY_DISP_HOR_RES、垂直分辨率MY_DISP_VER_RES,编译会警告,并且会提供默认的分辨率

 我们在外面自己定义即可

下面这里提供了三中刷屏方式,我们根据自己的硬件资源选择其中一种方式即可,其中第三种方式用到了MY_DISP_VER_RES 我们如果不用第三种刷新方式选择注释掉即可,我这里选择第二种刷新方式,注释掉第一种和第三种凡事如下,

 

 因为我们选择第二种,所以我们也要修改 显示buff改为buff2如下

 编译通过

 

 

2、根据实际情况修改  lv_conf.h

1、选RGB565

2、打开帧率和内存占用信息显示

 

 

3、添加自己的屏幕刷新程序如下

 

二、添加心跳到ms中断

1、这个心跳在 lv_hal_tick.c 源文件下,我们把它移到SysTick_Handler 嘀嗒定时器毫秒中断中,也可以自己开一个ms定时器放到定时器中断中

 

三、添加demo程序

1、添加lv_examples.h头文件

 

2、初始化lvgl、lcd、example

/**
 * @brief   初始化lvgl
 */
void user_lvgl_init(void)
{
    lv_init();              // lvgl初始化
    user_lcd_init();        // lcd 硬件初始化     
    lv_port_disp_init();    // 显示初始化  
    lv_example_led_1();     // demo 演示
}

3、将lv_timer_handler()放到死循环中,不断轮询,这里放到rtos线程中

void user_lvgl_task_run(void* pvParameters )
{
    while(1)
    {
        lv_timer_handler();
        vTaskDelay(1);
    }
}

4、lv_conf.h文件配置

a、由于硬件使用的是SPI 宽度为8位传输,所以修改这里,否则异常

b、修改字体大小,由于我的显示屏太小,需要改一下,显示的字体不然显示不下


 

 

 c、由于我的屏幕太小,还有修改demo程序上的显示位置,不然无法完全显示

,其它箭头的地方也改动一点 

效果,27的FPS ,7%的资源占用,效果还是可以的,显示大小还需调整

 

总结

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值