GUIslice中触摸Y坐标翻转问题的解决方法咨询
解决GUIslice中ILI9341+XPT2046触摸Y轴翻转问题
方法一:使用GUIslice内置宏(推荐)
你找到的GUIslice.h中的触摸相关宏确实是官方解决这类坐标映射问题的方案,具体操作如下:
- 定位到对应翻转Y轴的宏(不同版本宏名略有差异,常见为
GSLC_TOUCH_Y_INVERT或GSLC_CFG_TOUCH_FLIP_Y) - 在项目中提前定义该宏:
- 可以在主程序开头添加:
#define GSLC_TOUCH_Y_INVERT 1 - 或者在IDE的编译预定义选项中加入该宏
- 可以在主程序开头添加:
- 该宏会自动将触摸原始Y坐标转换为
屏幕高度 - 原始Y值,直接匹配ILI9341的显示坐标系,无需手动修改逻辑
方法二:手动修改触摸坐标转换
如果不想依赖宏,可以在触摸数据传入GUIslice前手动修正Y坐标:
- 假设屏幕高度为
GSLC_DISP_HEIGHT(比如240,对应ILI9341的240x320规格) - 获取原始触摸Y值后执行翻转计算:
uint16_t rawTouchY = XPT2046_ReadY(); // 替换为你读取XPT2046 Y坐标的实际函数 uint16_t fixedTouchY = GSLC_DISP_HEIGHT - rawTouchY - 1; - 将修正后的
fixedTouchY传入GUIslice的触摸处理接口,替代原始Y值即可
内容的提问来源于stack exchange,提问作者drdeath
相关产品推荐
相关产品推荐

