lvgl使用外部SRAM,图像边缘显示模糊重影

简述

使用正点原子HAL库例程移植littlevGL(lvgl),使用外部SRAM作为内存池,图像边缘显示模糊问题解决;

环境

硬件环境

    正点原子F407探索者开发板 480x800 TFT显示屏

软件环境

注意这里使用的HAL库例程代码

问题描述

在例程中添加lvgl代码。 刚开始使用内部RAM作为GUI内存池,并跑了下例程。。。显示正常。

考虑到后边有应用代码得跑,于是使用外部SRAM,还是移植使用正点原子的SRAM源码,路径如上。

#define COLOR_BUF_SIZE  (LV_HOR_RES_MAX*LV_VER_RES_MAX) 
static lv_color_t color_buf[COLOR_BUF_SIZE]  __attribute__((at(0X68000000)));

但是出现边沿模糊的现象,如下图

问题解决

原因是SRAM配置的问题

void SRAM_Init(void)
{	
    ......

	//FMC读时序控制寄存器
	FSMC_ReadWriteTim.AddressSetupTime=0x00;       	//地址建立时间(ADDSET)为1个HCLK 1/168M=6ns*16=96ns
	FSMC_ReadWriteTim.AddressHoldTime=0x00;			//地址保持时间(ADDHLD)模式A未用到
	FSMC_ReadWriteTim.DataSetupTime=0x08;			//原例程这里为0x06,改为0x08
	FSMC_ReadWriteTim.BusTurnAroundDuration=0X00;
	FSMC_ReadWriteTim.AccessMode=FSMC_ACCESS_MODE_A;//模式A
	HAL_SRAM_Init(&SRAM_Handler,&FSMC_ReadWriteTim,&FSMC_ReadWriteTim);	

}

解决!

经验分享 程序员 微信小程序 职场和发展