1、简介
LVGL支持多种外部输入设备,包括键盘、鼠标、触控面板、旋转按钮、按键,用于向LVGL应用输入操作状态,如按键点击、区域触控、候选轮询等,以下介绍触控面板在LVGL的注册过程。
2、操作步骤
触控设备为XPT2046电阻屏,XPT2046的驱动可以参考这篇帖子《XPT2046触控芯片驱动》
打开lv_port_indev.c文件,添加头文件导入
#include <XPT2046_touch.h>
![1744964261382912.png L7GERG]C7RUG]OH6R%KO5FE.png](http://uphotos.eepw.com.cn/1709346044/pics/1744964261382912.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;
}
}
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;
}
// }
}
main.c文件设置
//注册触控输入设备 lv_port_indev_init();//输入设备初始化

3、运行效果

我要赚赏金
