Texts look blurred

Hi all!

Thanks for this forum and lvgl library first of all.

Yesterday i Have ported version 7 to my Aurix tft 297 kit.
Everything is fine but text font is not readable.

Since there is no another text I couldn’t try. Do you maybe know why it happens?

It’s probably an issue with your flush_cb function. You may be copying an extra column or something similar.

But how?

I have checked cb it was fine.

Also i use 320*40 buffer.

In your picture, the slider has the same problem (look on the far left), so it’s not just an issue with text. I’m pretty sure something is up in your driver. If you post the code I can take a look.

1 Like

Thanks a lot embeddedt!

I am on a different computer now but i will check what u said. If I can’t solve then I share the code.

It is display driver related. You have something wrong in flush function.

  • check if you are using right pixel format. (Most likely)
  • if you are flushing by DMA, check if source and destination data width is properly set. Tricky: half word=16bit wide.
  • if you are using external ram for framebuffer make sure that your memory controller is properly configured (less likely)
1 Like

Thanks Nusret!

I copied driver from infineon and there was option like dma on/off and tried but nothing changed.

I have simple flush function here below. It is just setting the addressees and doing block write.

Since weekend I have tried many configurations on lcd but couldn’t get any result. I am kind of sure about lcd driver but i don’t have so much clue about library.

And one thing in aurix compiler that gives error for typedef variables but compiles also.
I don’t know what to do else. If somebody has aurix tft board I can share all code as well.


void my_flush_cb(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 oneby-one/
uint32 numberOfPixel;
if((area->x2 >= area->x1) && area->y2 >= area->y1)
numberOfPixel = ((area->x2+1) - area->x1) * ((area->y2+1) - area->y1);
tft_display_setxy(area->x1, area->y1, area->x2, area->y2);
/* IMPORTANT!!! Inform the graphics library that you are ready with the flushing*/

#include <stdint.h>
1 Like

Thanks nusret.

I am still struggling with same probem. To be sure I wanted to move the library to another IDE which uses diferent lcd driver. But this time I got an different error.

C:\Users\erhan\htc-workspace\LCDDemo_ApplicationKitTC297B-Step\lvgl/lv_init.h:65: error: undefined reference to `lv_disp_flush_ready’

It behaves like I didn’t innclude the library files but I did. I did copy all source files into the project folder and included them in the settings. Even tough when I right click to the function and say go to definition then it goes. But compiler or linker doesn’t recognize it seems. Have you never faced this problem?

I am using hightec aurix compiler.

Erhan, this is something different than your initial problem. Your build environment is not properly set up. Check your project’s search paths, include and build dirs.
In your initial problem it seems more like the display expects the data in order like Word1 Word2 Word3 Word4 Word5 Word6… and you are sending them like Word3 Word2 Word1 Word6 Word5 Word4.
Try to read this article: https://docs.lvgl.io/v7/en/html/porting/display.html
Kullandığınız derleyiciye aşina değilim. Build options gibi bir seçeneği vardır elbet. Oradan kaynak ve header dosyalarının olduğu klasörlerin yolunu göstermeniz gerekiyor olabilir.

1 Like

Thanks a lot Nusret. Now it works with other IDE after I have specified source folder. As you said I have a problem with other driver. I will try to solve it.

Now it works with other IDE also. Spi driver was sending data as 32 bits even tough its 16 bit color without any warning since data pointer is void. Now it’s fine. Thanks again.


Please post the working display content after your changes for reference. Where exactly you made the changes in the file . can you mention that also along with it.