indev_keypad = lv_indev_drv_register(&kb_drv); lv_indev_set_group(indev_keypad, group); 用这个来注册,然后把需要接收按键的控件加入group。 这样当有按键按下,LVGL会根据键值处理对应的按键。回调函数(linux下的):void evdev_btn_read(lv_indev_drv_t * drv, lv_indev_data_t * data) { struct ...
LV_INDEV_TYPE_ENCODER 编码器,带有左/右转和推动选项。 LV_INDEV_TYPE_BUTTON 外部按钮。 初始化输入设备结构体lv_indev_drv_t 复制 lv_indev_drv_tindev_drv;lv_indev_drv_init(&indev_drv);//初始化结构体indev_drv.type=LV_INDEV_TYPE_POINTER;//输入设备类型,当前为鼠标indev_drv.read_cb=...//...
/触摸函数,给LVGL使用voidmy_input_read(_lv_indev_drv_t*drv,lv_indev_data_t*data){uint8_ttouches=ts.touched(GT911_MODE_POLLING);if(touches==0)return;GTPointp=ts.getPoint(0);//Serial.printf("#%d %d,%d s:%d\n", p.trackId, p.x, p.y, p.area);data->state=LV_INDEV_S...
在函数lv_port_indev_init中,默认有触摸设备LV_INDEV_TYPE_POINTER的注册代码,这里我们仿照触摸设备,写一个物理按键的注册代码: static lv_indev_drv_t keypad_drv; lv_indev_drv_init(&keypad_drv); keypad_drv.type = LV_INDEV_TYPE_KEYPAD; /* 回调函数:通过这个函数读取输入设备的值 */ keypad_drv.rea...
要注册输入设备,必须初始化一个变量:lv_indev_drv_t lv_indev_drv_t indev_drv; lv_indev_drv_...
在lv_port_indev.c中对接 LVGL 的输入接口,LVGL 支持多种类型的输入设备,例如触摸,键盘,编码器等,我这里使用的是触摸类型。 输入接口必须初始化 lv_indev_drv_t 变量,最重要的是实现其 read_cb 回调函数,从而获取触摸信息。其余具体配置可以查看:Input device interface — LVGL documentation ...
evdev_button = LV_INDEV_STATE_REL; } //读取输入事件 void evdev_read(lv_indev_drv_t * drv, lv_indev_data_t * data) { //当获取到触摸时将读取到的点的坐标以及状态赋值给临时变量 while(ts_read(ts, &samp, 1) >...
/*读取按键是否按下,并传递键值*/ static void button_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data) { static uint8_t last_btn = 0; /*Get the pressed button's ID*/ int8_t btn_act; btn_act = KEY_VAL;//将实际键值传递给响应键值 if(btn_act >= 0) { data->state...
2. 对接触摸输入接口:在lv_port_indev.c中对接 LVGL 的输入接口,LVGL 支持多种类型的输入设备,例如触摸,键盘,编码器等。输入接口必须初始化 lv_indev_drv_t 变量,最重要的是实现其 read_cb 回调函数,从而获取触摸信息。 配置RT-Thread, 编译下载工程 ...
#include "../lib/lv_drivers/display/fbdev.h" #include "../lib/lv_drivers/indev/evdev.h" #include <unistd.h> #include <pthread.h> #include #include <sys/time.h> #define DISP_BUF_SIZE (128 * 1024) int main(void) { /*LittlevGL...