推荐demo的做法是在一个死循环里,休眠5ms后调用一次tick inc和task handler。这样做是为了方便优化,但是在Linux开发板上会有肉眼可见的卡顿。
官方有关于linux系统移植的配置方案https://github.com/lvgl/lv_port_linux_frame_buffer
通过启用custom tick,使用Linux的clock_gettime()函数来驱动lvgl的tick机制,就解决了动画效果卡顿的问题。
配置之后触摸没有反馈,是因为触摸中断没有配置,需要修改以下配置
lv_drv_conf.h
/*-------------------------------------------------
* Mouse or touchpad as evdev interface (for Linux based systems)
*------------------------------------------------*/
#ifndef USE_EVDEV
# define USE_EVDEV 1
#endif
#ifndef USE_BSD_EVDEV
# define USE_BSD_EVDEV 0
#endif
main.c
/*Initialize and register a input driver*/
evdev_init();
lv_indev_drv_t indev_drv;
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_POINTER;
indev_drv.read_cb = evdev_read;
lv_indev_drv_register(&indev_drv);