|
首先大家要明确以下几点,非常重要:
1. STemWin自带的触摸校准函数在X轴镜像,Y轴镜像或者都镜像的情况下依然可以正常使用。认识到这点
非常的关键,要不搞着搞着就把自己绕进去了。
2. 大家拿到LCD屏以后,要显示图片、文字等的时候,不外乎横屏或者竖屏显示,一旦显示方式确定了,
那么屏的扫描方式也就确定了(啥是扫描方式,也是就是X,Y轴坐标地址的递增方向)。扫描方式确定
下来以后,后面所有的操作都要以这个为参照对象,咱们前面说的X轴镜像,Y轴镜像就是以这个为参照
对象的。
3. STemWin自带的触摸函数是校准不了X,Y轴翻转的,这个大家一定要认识到,咱们主要解决的也就是X,Y翻转。
4. STemWin底层在获取X,Y轴ADC数值的时候,只要保证:
int GUI_TOUCH_X_MeasureX(void) //这里用于获取X轴ADC的数值
int GUI_TOUCH_X_MeasureY(void) //这里用于获取Y轴ADC的数值
底层保证读取位置一致,需要做修改的话都放在应用层。
5. 学习一下官方的GUI_TOUCH_SetOrientation函数。
6. 校准好参数以后将结果保存到EEPROM里面,以后开机直接加载就可以。
========================================================================
有了上面6条基本就够了,剩下就是写相应的驱动函数,顺别给大家贴一个我测试4.3寸,5寸,7寸屏时触摸的ADC数值。屏的扫描
方式都是从左到右,从上到下,以7寸800*480为例,坐标边界就是:
(0,0)------------------------------------------(799,0)
| |
| |
| |
| |
| |
| |
(479,0)----------------------------------------(799,479)
7寸,800*480分辨率ADC数值,这个是理想情况,具体数值就不贴出来了。
(1023, 0)-----------------------------------(1023,1023)
| |
| |
| |
| |
| |
| |
(0,0)----------------------------------------(0,1023)
5寸,800*480分辨率ADC数值,这个是理想情况,具体数值就不贴出来了。
(1023, 1023)-----------------------------(0,1023)
| |
| |
| |
| |
| |
| |
(1023,0)----------------------------------------(0,0)
7寸,800*480分辨率ADC数值,这个是理想情况,具体数值就不贴出来了。
(1023, 1023)-----------------------------(0,1023)
| |
| |
| |
| |
| |
| |
(1023,0)----------------------------------------(0,0)
总结:实际测试的话,会发现上面7寸的是X,Y轴翻转了,而下面两个只是有镜像问题。其实从数学的角度分析下也能得出这个结论
为什么这么说,大家想想是不是我下面说的这样:
显示屏对角的两个ADC坐标,X和Y中有一个是ADC数值递增,另一个是数值递减,则X,Y发生翻转了,如果都是递增或者递
减说明没有翻转。 |
|