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);
}
解决!
