A bug in my_disp_flush or flush_cb

Look at this line:
disp_drv.flush_cb = my_disp_flush; /Set your driver function/

At left side, it’s defined as:
void (*flush_cb)(struct _disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p);

While at right side, it’s defined as:
void my_disp_flush(lv_disp_t * disp, const lv_area_t * area, lv_color_t * color_p);

Apparently, the 2 first parameters are different, _disp_drv_t vs lv_disp_t

So, how to fix it?

Hi, no fix required. There is no type “_disp_drv_t” defined. There is type “struct _disp_drv_t” defined instead.this for example https://stackoverflow.com/questions/252780/why-should-we-typedef-a-struct-so-often-in-c This type is the same as lv_disp_t type.

Hi,

The define of struct _disp_drv_t is at line 66 of lv_hal_disp.h

BTW, it would be an error if there’s no define of struct _disp_drv_t, now it’s just a warning.