RT-Thread qemu LVGL9.5 鼠标 indev 驱动更新 lv_port_indev.c

说明

  • RT-Thread : 5.2.0

  • LVGL 9.5

  • BSP : qemu-vexpress-a9

  • 更新 LVGL 9.5 版本后, 原来的 LVGL8.3 版本的 Mouse 鼠标输入设备驱动 lv_port_indev.c 需要重新适配。

  • qemu qemu-vexpress-a9 Mouse 输入设备,鼠标的坐标默认被动读取。也就是鼠标移动或者点击后,产生坐标数据与输入事件(按下、弹起),等待 LVGL 周期性输入读取回调函数读取。

LVGL9.5 lv_port_indev.c 适配

  • 适配如下
c 复制代码
#include <lvgl.h>
#include <stdbool.h>
#include <rtdevice.h>

#include <drv_clcd.h>

lv_indev_t * touch_indev;

static lv_indev_state_t last_state = LV_INDEV_STATE_REL;
static rt_int16_t last_x = 0;
static rt_int16_t last_y = 0;

static void input_read(lv_indev_t * indev, lv_indev_data_t *data)
{
    data->point.x = last_x;
    data->point.y = last_y;
    data->state = last_state;
}

void lv_port_indev_input(rt_int16_t x, rt_int16_t y, lv_indev_state_t state)
{
    last_state = state;
    last_x = x;
    last_y = y;
}

void lv_port_indev_init(void)
{
    touch_indev = lv_indev_create();
    lv_indev_set_type(touch_indev, LV_INDEV_TYPE_POINTER);
    lv_indev_set_read_cb(touch_indev, input_read);
}

效果

  • 新版本如 LVGL 9.5 工程编译通过

  • 点击鼠标后,产生事件。比如更按钮的颜色

点击按钮,触发按钮的背景颜色切换。

  • 默认 LVGL 的 LOG,比如 LV_LOG_USER("Clicked"); 没有输出, RT-Thread 上需要适配 LOG 打印
相关推荐
混分巨兽龙某某5 天前
基于STM32的嵌入式操作系统RT-Thread移植教学(HAL库版本)
stm32·嵌入式硬件·rt-thread·rtos
张世争7 天前
RT-Thread 5.3 windows bsp simulator scons --target=vs 生成的工程编译失败问题
windows·rt-thread·simulator
张世争7 天前
RT-Thread windows bsp simulator Visual Studio 2012 (v110) (未安装) 问题
rt-thread·visual studio·simulator
河码匠13 天前
libvirt xml 配置文件说明
qemu·kvm·libvirt
lindd91191116 天前
4G模块应用,内网穿透,前端网页的制作第七讲(智能头盔数据上传至网页端)
前端·后端·零基础·rt-thread·实时操作系统·项目复刻
乙酸氧铍19 天前
【imx6ul 学习笔记】Docker 运行百问网 imx6ul_qemu
linux·docker·arm·qemu·imx6ul
fdtsaid1 个月前
Intel 六位专家对 Simics 助力 Shift-Left 的讨论(2018)
qemu·仿真·simulation·simics·intel simics
mftang1 个月前
基于GD32的直流无刷电机控制算法实现和验证
单片机·嵌入式硬件·rt-thread·gd32f527i-eval
叶帆2 个月前
【睿擎派】云端一体,多种通信协议构建机械臂运动控制系统
物联网·mqtt·rt-thread·modbus·工业通信·ethercat·睿擎派
刘洪峰IoT2 个月前
【睿擎派】云端一体,多种通信协议构建机械臂运动控制系统
物联网·rt-thread·睿擎派·物联网智能网关