按键和触摸冲突

int main(int argc, char *argv[])
{
App_Init();

lcd_lvgl_init_lib();
lcd_open_lib();

memset(&TsPoint, 0, sizeof(TS_POINT_T));

touchpad_init();

indev_touchpad = lv_indev_create();
lv_indev_set_type(indev_touchpad, LV_INDEV_TYPE_POINTER);
lv_indev_set_read_cb(indev_touchpad, touchpad_read);

indev_keypad = lv_indev_create();
lv_indev_set_type(indev_keypad, LV_INDEV_TYPE_KEYPAD);
lv_indev_set_read_cb(indev_keypad, keypad_read);

// group = lv_group_create();
// lv_indev_set_group(indev_keypad, group);	//将组绑定到输入设备

//lcd_test();
lv_example_get_started_1();
/*Handle LVGL tasks*/
while(1) {
    lv_timer_handler();
    lv_tick_inc(5);//防止5毫秒过去 ,LVGL会失去时钟,触摸函数无响应
}

}

参考实现: https://renesas-docs.100ask.net/zh/DShanMCU_RA6M5/lvgl_port_special_tutorial/chapter7.html#_7-2-对接驱动

    lv_group_t *g = lv_group_create();
    lv_group_set_default(g);
    lv_indev_set_group(indev_touchpad, g);
    lv_indev_set_group(indev_encoder, g);

这个我也试过,但是按键和触摸两个都不能用了。

那应该是你的按键驱动有问题,这是使用按键输入的视频教程:https://www.bilibili.com/video/BV1Ya411r7K2?p=19

好的,我参考上的学习一下。感谢您。还想再请教一个问题。
触摸现在可以获取到屏幕的X和Y值,那这个界面中存在多个组件,想通过触摸控制的话,是不是得使用X和Y的值来控制?还是LVGL有什么更好的办法?

你只需要将获取的坐标值告诉lvgl即可,lvgl会根据坐标数据进行处理。

如果你想实现拖拽效果,在和lvgl库对接好触摸驱动之后,参考这个示例:https://lvgl.100ask.net/8.3/widgets/obj.html#make-an-object-draggable

那还有个问题请教周老师,我这边测试,发现按下去能获取到X和Y,我界面也有一个按钮,但是按钮并没有响应触摸,这个有什么原因? 我尝试把按钮加到group 这个group和触摸绑定,但是都没有效果。

哦哦,解决了,不需要group绑定,的确是lvgl根据坐标数据自动处理的