Description
In tft_init() if I use external RAM instead of intern RAM and call lv_disp_buf_init() with both buffers, I get horizontal strips on the display as well as some graphics is overided by white strips.
What MCU/Processor/Board and compiler are you using?
STM32F769I-DISCO compiled by STM32CubeIde
What do you want to achieve?
I would like to use two buffers for greater speed
What have you tried so far?
If I don’t use a second buffer, it all works as it should
In other words calling
lv_disp_buf_init(&disp_buf, buf, buf2, TFT_HOR_RES * 48);
produce strips
but:
lv_disp_buf_init(&disp_buf, buf, NULL, TFT_HOR_RES * 48);
dose not
Code to reproduce
//Original RAM buffers not used
// static lv_color_t buf[TFT_HOR_RES * 48];
// static lv_color_t buf2[TFT_HOR_RES * 48];
#define SDRAM_START_ADDR ((uint32_t)0xC0000000) // base adress for SDRAM
#define FB_SIZE ((uint32_t)800*480*2) // Frame buffer already using this space
//SDRAM pointers
static lv_color_t *buf=(lv_color_t *)(SDRAM_START_ADDR+FB_SIZE); // first buffer just after frame buffer
static lv_color_t *buf2= (lv_color_t*)(SDRAM_START_ADDR+FB_SIZE+(TFT_HOR_RES * 48));// second buffer just after the first one
static lv_disp_buf_t disp_buf;
//lv_disp_buf_init(&disp_buf, buf, buf2, TFT_HOR_RES * 48);
lv_disp_buf_init(&disp_buf, buf, NULL, TFT_HOR_RES * 48);
Screenshot and/or video
If possible, add screenshots and/or videos about the current state.