LVGL串口打印

我这个是在LVGL直接加入了linux的串口应用编程,在ubantu用SDL2模拟运行,简单做了一个类似串口助手的功能,请问可以这么写吗,电脑和板子连,发送指令,并接收返回信息显示出来,亲测运行可以。但是我知道LVGL有一个日志打印,这个日志打印与串口能连一起吗,是不是不用这么麻烦。有啥区别吗。想用LVGL搞一个工控触摸界面,主要使用串口功能控制设备
//////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////
void ui_event_Keyboard2(lv_event_t * e)
{

lv_event_code_t event_code = lv_event_get_code(e);
lv_obj_t * obj = lv_event_get_target(e);
const char * txt = lv_btnmatrix_get_btn_text(obj, lv_btnmatrix_get_selected_btn(obj));
if(txt == NULL) return;
if(event_code == LV_EVENT_CLICKED) {

     if(strcmp(txt, LV_SYMBOL_OK) == 0) {
     command_state2=1; //串口发送标志位
	 lv_event_send(ui_TextArea1, LV_EVENT_READY, NULL);
   }

}
}
///////////////////////////////////////////////////////////////////
void ui_event_TextArea1(lv_event_t * e)
{
lv_obj_clear_state(ui_TextArea1,LV_EVENT_READY);
lv_event_code_t event_code = lv_event_get_code(e);
lv_obj_t * ta = lv_event_get_target(e);
const char * txt = lv_textarea_get_text(ta);

if(command_state2){
write(serial_fd,txt,strlen(txt));//发送命令
command_state2=0;
lv_event_send(ui_TextArea2, LV_EVENT_READY, NULL);
// waitting_state=1;
}
}
void ui_event_TextArea2(lv_event_t * e)
{

lv_obj_clear_state(ui_TextArea2,LV_EVENT_READY);
lv_event_code_t event_code = lv_event_get_code(e);
lv_obj_t * ta = lv_event_get_target(e);
int reg =0;
int i=0;
char *txt;
txt = (char )malloc(10sizeof(char));
memset(txt,0,10);
reg=read(serial_fd,txt,10);//接收返回的信息

  for(;i<=reg;i++)
  {
  lv_textarea_add_char(ta,txt[i]);
  
  }
    free(txt);

}

lvgl的日志打印更像是我们单片机中的串口打印,lvgl的初衷是为了方便用户进行LVGL相关的调式开发,如果你想将lvgl编写的ui作为串口上位机,那么lvgl的串口打印模块不能帮你实现这个功能