Please explain how to integrate LVGL into regular code?

Description

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

I’m using STM32 Nucleo-H7A3 and their STM32CudeIDE

What LVGL version are you using?

V8.3

What do you want to achieve?

I’d like for someone to explain or point me to information that explains how to integrate LVGL into normal code.

void calibrate(void)
{
	uint8_t current_index = 0;
	lv_obj_clean(lv_scr_act());
	lv_print_CAL_Test_text();
	lv_display_3_buttons();
	lv_display_target_mA_value();
	generate_CAL_current(current_index);
} 

void lv_display_target_mA_value(void)
{
    ma_textarea = lv_textarea_create(lv_scr_act());
    lv_textarea_set_one_line(ma_textarea, true);
    lv_obj_set_size(ma_textarea, 155, 70);
    lv_obj_align(ma_textarea, LV_ALIGN_TOP_MID, 120, 210);
    lv_obj_add_event_cb(ma_textarea, event_handlerMA, LV_EVENT_VALUE_CHANGED, NULL);
    lv_obj_add_state(ma_textarea, LV_STATE_FOCUSED); /*To be sure the cursor is visible*/
    sprintf(MA_buf, "%.3f", target_current[ma_index]);
    lv_textarea_set_text(ma_textarea, MA_buf);

    static lv_style_t style_label;
    lv_style_init(&style_label);
    lv_style_set_text_font(&style_label, &lv_font_montserrat_36);
    lv_obj_add_style(ma_textarea, &style_label, LV_STATE_DEFAULT); /* fix order */
}

static void button_plus_event_handler(lv_event_t* e)
{
	lv_event_code_t code = lv_event_get_code(e);
    if (code == LV_EVENT_PRESSED) {
    	LV_LOG_USER("Clicked");
    }
    else if (code == LV_EVENT_VALUE_CHANGED) {
        LV_LOG_USER("Toggled");
    }
    CAL_adj += 10;				// add to D/A counts to achieve target current
}

void generate_CAL_current(uint16_t current_index)
{
	uint16_t ch1Data, ch2Data, counts;

	counts = D2A_CAL_counts[current_index] + CAL_adj;
	Write_DAC80501_DAC(counts);
	HAL_Delay(5);
	readMCP3427(&ch1Data, &ch2Data);	// Read data from MCP3427 ADC
	HAL_Delay(5);
} 

Currently the code will display the proper screen and the target current gets displayed as it should. The button_plus_event works. It increments the CAL_adj value. But how do I call the generate_CAL_current(current_index) function again? It only gets called once.

Can some kind soul point me to where the documentation covers this sort of thing?
Thanks,
Richard