STM32CUBEIDE下littleVGL的移植+分配外部SRAM

下载官方源码

https://github.com/lvgl/lvgl

  • 复制lvgl到工程界面
  • 复制lvgl/lv_conf_temp1.h,并改为lv_conf.h,放到lvgl同等级的文件夹下,将#if 0 改成 1,使能这个文件,并且设置 分辨率LV_HOR_RES_MAXLV_VER_RES_MAX,还有颜色深度, LV_COLOR_DEPTH,其他暂时放着不管
#define LV_HOR_RES_MAX          (480)
#define LV_VER_RES_MAX          (800)
#define LV_COLOR_DEPTH     16
  • 引用头文件lvgl/lvgl.h
  • 选一个定时器作为lvgl的时钟心跳,一般是1ms,然后添加lv_tick_inc(x)到中断服务函数中,x可以是任意值
    这里我选用TIM7
void TIM7_IRQHandler(void)
{
   
    if(TIM7->SR&TIM_FLAG_UPDATE)
    {
   
        lv_tick_inc(1);//lvgl 的 1ms 心跳
        TIM7->SR = (uint16_t)~TIM_FLAG_UPDATE;
    }
}
  • 实现底层驱动
    1、将\lvgl\examples\porting下除了lv_port_fs_template以外的四个文件,添加到文件夹lv_driver中并添加到工程中,同时去掉template后缀
    2、在lv_port_disp.c中的disp_flush函数下添加用户自己的颜色填充函数,并适当屏蔽文件中一些用不到的代码和函数,记得包含对应的显示驱动头文件到此目录下
static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)
{
   
    /*The most simple case (but also the slowest) to put all pixels to the screen one-by-one*/
/
    //use user define funcitons to fill color
    LCD_Color_Fill(area->x1,area->y1,area->x2,area->y2,(uint16_t *)color_p);
/
    /* IMPORTANT!!!
     * Inform the graphics library that you are ready with the flushing*/
    lv_disp_flush_ready(disp_drv
  • 4
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值