我这个是在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);
}