What do you want to achieve?
I want to use a ST7789P3 320x240 LCD tearing free. It is connected to a Nucleo H563ZI board via SPI. A complete SPI transfer of the full buffer takes 9.7 ms (125 MHz SPI. I know this is unspecified but it is working stable. This is not the cause of my issues).
When i have my display in 0 degrees rotation it works fine and no tearing is visible. When i use
lv_display_set_rotation(display, LV_DISPLAY_ROTATION_90);
I start to get tearing. This tearing is a diagonal line. I think the issue is that my LCD reads its buffer row by row (short edge) but lvgl sends its buffer column by column (long edge).
Is there a way to tell lvgl to send its buffer row by row instead of column by column?
What have you tried so far?
I tried different things with
lv_display_set_rotation(display, LV_DISPLAY_ROTATION_90);
and manually changing the LV_LCD_CMD_SET_ADDRESS_MODE settings but they don’t solve my issue.
I also tried some configurations of
lv_draw_sw_rotate(...);
but also without success. Either the image is completely scrambled or tilted in weird angles.
Environment
- STM32 H563ZI Nucleo
- 9.3 and 9.4