Constant parameter in flush function


MyFlush function always is called with constanst parameter, who is wrong :frowning:

I’am USING the newest library from github → master

What MCU/Processor/Board and compiler are you using?

STM32F407G, STM32CubeIDE

What do you want to achieve?

Draw Rectangle!

What have you tried so far?

I have my own working rectangle function, but lvgl calling the flush function with wrong parameters.
So my LL driver works well!

Code to reproduce

Here Is the Repository where i trying run it.
[!] GitHub - trteodor/LVGL_Porting_TO_ILI9341_STM32F407

From debugger:

[!] LVGL_Porting_TO_ILI9341_STM32F407/TheProblem.PNG at master · trteodor/LVGL_Porting_TO_ILI9341_STM32F407 · GitHub

The Display driver is in ILI9341 folder
Main function in Core->Src->main.c

I’am rly new with LVGL, And I know about my english is low so sorry :frowning:

The Code isn’t also blocking my heart bit diode still blinking :wink:

Okey LVGL cleaning on white my screen correctly now after initialization. But Still the example “lv_example_get_started_1” don’t drawing anything on my screen :frowning:

I suppose, error is here:
void ILI9341_flush(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t * color_map)
ILI9341_SetAddrWindow((uint16_t)area->x1, (uint16_t)area->y1, (uint16_t)area->x2, (uint16_t)area->y2);
// ILI9341_SetAddrWindow(10, 10,10,10);
ILI9341_SendCommand(ILI9341_RAMWR); //Ta komenda przed zapisem!!!
uint32_t size = (area->x2 - area->x1 + 1) * (area->y2 - area->y1 + 1);
Send_DMA_Data16(&color_map->full, size);

void DMA_ILI9341_SPI_TransmitComplete_Callback()

I take the color correctly?
Send_DMA_Data16(&color_map->full, size); so yes ← here was error :frowning:
Send_DMA_Data16( (uint16_t *)color_map, size); Thats correctly, and DMA should be increment mode :slight_smile: I lost 3 hours but i found solution finally! :slight_smile: