基于littleVGL的双缓存机制,改善刷新率问题

基于littleVGL的双缓存机制,不使用GPU,改善刷新率问题

前言

在使用littleVGL作为图形库的时候,单缓冲的显示有类似拉窗帘的效果,不能用于实际产品中,littleVGL支持双缓存显示可以满足我们的显示要求

一、运行环境

当前项目使用的是MCU是STM32F429的片子,本身的资源非常丰富,使用的LTDC的外设驱动屏幕刷新,具体ltdc的外设等后面文章在记录;使用了外扩的SDRAM的前80048022字节作为显示缓冲区;屏幕800480,RGB565;

二、实现步骤

1.指定显示缓冲区

代码如下(示例):

/**
  * @brief LCD显存和LVGL缓存定义
  */
uint16_t lcd_buffer_1[LCD_WIDTH * LCD_HIGH] __attribute__((at(SDRAM_LCD_ADDR_1)));
uint16_t lcd_buffer_2[LCD_WIDTH * LCD_HIGH] __attribute__((at(SDRAM_LCD_ADDR_2)));

2.指定ltdc显示buffer

代码如下(示例):pLayerCfg.FBStartAdress = (uint32_t)lcd_buffer_1;

/* LTDC init function */
void MX_LTDC_Init(void)
{
   

  /* USER CODE BEGIN LTDC_Init 0 */

  /* USER CODE END LTDC_Init 0 */

  LTDC_LayerCfgTypeDef pLayerCfg = {
   0};

  /* USER CODE BEGIN LTDC_Init 1 */

  /* USER CODE END LTDC_Init 1 */
  hltdc.Instance = LTDC;
  hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
  hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
  hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
  hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC
  • 0
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值