|
特别说明:pdf版60期emWin教程已经发布:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=2932
2. STM32-X2,X3,V2,V3,V5开发板裸机和带系统的emWin工程已经全部建立,链接如下:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=1830
3. STemWin实例是基于STM32-V5开发板,工程全部是裸机的,含IAR和MDK两个版本,版本不限制。
移植到到其它开发板上面也很方便,有不清楚的地方可发帖或者留言。
本期实例放在第一个,主要是因为这个帖子:http://www.armbbs.cn/forum.php?mod=viewthread&tid=1306,开发板售后的时候,
问这个问题人也比较多,还有一个重要的原因就是很多人因触摸校准问题而头疼本期实例就为此而生。后面的STemWin
实例都是以这个例子为基础的用户需要先用这个例子校准好触摸参数,并将结果保存到EEPROM。运行其它例子的时
候直接从EEPROM里面加载触摸参数就可以。
首先大家要明确以下几点,非常重要:
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发生翻转了,如果都是递增或者递
减说明没有翻转。
例程下载:
安富莱4.3寸,5寸,7寸屏触摸校准程序.zip
(4.68 MB, 下载次数: 1269)
|
|