You are setting up lvgl with elements like buttons, textboxes, rollers, images etc.
lvgl than build up the framebuffer with the ‘image’ which is then transferred by the flush callback function to the display (LCD, OLED etc.).
The question is now, where is the problem of your understanding, and what do you want to know?
If you didn’t create a label or button, I thought if you just created a frame buffer and set it in the driver, there was a garbage value inside the buffer that didn’t contain any value. So I couldn’t figure out what would come out if I displayed the buffer.
Does the callback function put another random value in the frame buffer and display it on the LCD?
I just tried it with the lvgl simulator. Just removed all elements/widgets and the screen shows all white.
Nevertheless I think it should be either white or black without anything else.
I have been porting LVGL as well, nothing will be drawn (black screen) if you don’t tell LVGL to draw anything.
Try pasting the following code after succesfully initializing all that needs to be done:
/*Change the active screen's background color*/
lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x003a57), LV_PART_MAIN);
/*Create a white label, set its text and align it to the center*/
lv_obj_t * label = lv_label_create(lv_scr_act());
lv_label_set_text(label, "Hello world");
lv_obj_set_style_text_color(lv_scr_act(), lv_color_hex(0xffffff), LV_PART_MAIN);
lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);