这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » LVGL注册触控输入设备

共2条 1/1 1 跳转至

LVGL注册触控输入设备

工程师
2025-04-18 16:38:51     打赏

1、简介

LVGL支持多种外部输入设备,包括键盘、鼠标、触控面板、旋转按钮、按键,用于向LVGL应用输入操作状态,如按键点击、区域触控、候选轮询等,以下介绍触控面板在LVGL的注册过程。

2、操作步骤

触控设备为XPT2046电阻屏,XPT2046的驱动可以参考这篇帖子《XPT2046触控芯片驱动》

XPT2046触控芯片驱动-电子产品世界论坛

打开lv_port_indev.c文件,添加头文件导入

#include <XPT2046_touch.h>

L7GERG]C7RUG]OH6R%KO5FE.png

LVGL触控板状态读取,触控动作存在返回状态true,否则返回false,是touchpad_read进行坐标读取的依据。

static bool touchpad_is_pressed(void)
{
    /*Your code comes here*/
//  BSP_TS_GetState(&TS_State);
if(XPT2046_TouchPressed()){
//while(XPT2046_TouchPressed());
return true;
}
else{
return false;
}
}

`1DAU3QS[`_GOS1K@K1QEVT.png

LVGL获取触控坐标

static void touchpad_get_xy(lv_coord_t * x, lv_coord_t * y)
{
    /*Your code comes here*/
//                BSP_TS_GetState(&TS_State);
//  if(XPT2046_TouchPressed())
//  {
   uint16_t x1 = 0, y1 = 0;
   if(XPT2046_TouchGetCoordinates(&x1, &y1))
   {
//                 printf("XPT2046 x=%d,y=%d\n",x1,y1);
(*x) = x1;
    (*y) = y1;
 
   }
//  }
 
}

NA8IK@UX2KK09PRB7S}2S)4.png

main.c文件设置

//注册触控输入设备
lv_port_indev_init();//输入设备初始化

(I(2KE_(M5EM`Z_E2L2G2PW.png

3、运行效果

screenshots.gif





关键词: LVGL触控    

高工
2025-04-20 08:34:35     打赏
2楼

感谢分享。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]