|
特别说明:pdf版60期emWin教程已经发布:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=2932
1. STM32-X2,X3,V2,V3,V5开发板裸机和带系统的emWin工程已经全部建立,链接如下:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=1830
2. STemWin实例是基于STM32-V5开发板,工程全部是裸机的,含IAR和MDK两个版本,版本不限制。
移植到到其它开发板上面也很方便,有不清楚的地方可发帖或者留言。
本期教程是为了配套第1期实战例子而做的例子,在第一期教程中我们简单讲解了如何实现触摸校准的自动识别,
本期教程就是在第1期的基础上面讲解如何加载我们存储的EEPROM中的参数。
2.1 触摸参数加载
2.2 实验说明
2.3 例子下载
2.4 总结
2.1 触摸参数加载
触摸参数的加载主要在LCDConf.C文件里面的LCD_X_Config函数中实现加载。从EEPROM中加载参数的时候,
注意是从地址1K后加载的,因为前面的地址空间用于了V5开发板出厂程序,为了防止覆盖前面的存储数据,在第1
期的实例中就是将参数保存到了1K以后的空间:
- /* 保存触摸参数到EEPROM里面 */
- g_tTPSL.usAdcX1 = aPhysX[0];
- g_tTPSL.usAdcX2 = aPhysX[1];
- g_tTPSL.usAdcY1 = aPhysY[0];
- g_tTPSL.usAdcY2 = aPhysY[1];
- g_tTPSL.XYChange = ucXYChang;
-
- ee_WriteBytes((uint8_t *)&g_tTPSL, 1024, sizeof(g_tTPSL));
复制代码
下面的代码是加载代码,这里没有做3.0寸屏的校准参数存储和加载,有兴趣的可以做一下。- *
- ****************************************************************************
- *
- * LCD_X_Config
- *
- * Purpose:
- * Called during the initialization process in order to set up the
- * display driver configuration.
- *
- ****************************************************************************
- */
- void LCD_X_Config(void)
- {
- /* 读取EEPROM中的参数 */
- ee_ReadBytes((uint8_t *)&g_tTPSL, 1024, sizeof(g_tTPSL));
-
- /* Set display driver and color conversion for 1st layer */
- GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER, COLOR_CONVERSION, 0, 0);
- if (g_ChipID == IC_8875)
- {
- if (g_ucGPIX == 1) /* GPIX = 1 4.3 480x272 */
- {
- /* Display driver configuration */
- LCD_SetSizeEx (0, 480, 272);
- LCD_SetVSizeEx (0, 480, 272);
-
- /* Touch calibration */
- GUI_TOUCH_Calibrate(GUI_COORD_X, 0, 479, g_tTPSL.usAdcX1, g_tTPSL.usAdcX2);
- GUI_TOUCH_Calibrate(GUI_COORD_Y, 0, 271, g_tTPSL.usAdcY1, g_tTPSL.usAdcY2);
-
- /* 查看是否需要切换X,Y*/
- if(g_tTPSL.XYChange == 1)
- {
- GUI_TOUCH_SetOrientation(GUI_SWAP_XY);
- }
- }
- else /* GPIX = 0 7 800*480 */
- {
- /* Display driver configuration */
- LCD_SetSizeEx (0, XSIZE_PHYS, YSIZE_PHYS);
- LCD_SetVSizeEx (0, VXSIZE_PHYS, VYSIZE_PHYS);
-
- GUI_TOUCH_Calibrate(GUI_COORD_X, 0, XSIZE_PHYS - 1, g_tTPSL.usAdcX1, g_tTPSL.usAdcX2);
- GUI_TOUCH_Calibrate(GUI_COORD_Y, 0, YSIZE_PHYS - 1, g_tTPSL.usAdcY1, g_tTPSL.usAdcY2);
-
- /* 查看是否需要切换X,Y*/
- if(g_tTPSL.XYChange == 1)
- {
- GUI_TOUCH_SetOrientation(GUI_SWAP_XY);
- }
- }
- }
- else
- {
- LCD_SetSizeEx (0, 400, 240);
- LCD_SetVSizeEx (0, 400, 240);
-
- /* Touch calibration */
- GUI_TOUCH_Calibrate(GUI_COORD_X, 0, 399, 300, 3600);
- GUI_TOUCH_Calibrate(GUI_COORD_Y, 0, 239, 273, 3671);
- }
- }
复制代码 2.2 实验说明:
本实验演示了一个如下的例子:、
2.3 例子下载
第2期:安富莱4.3寸,5寸,7寸屏触摸校准参数自动加载.zip
(4.75 MB, 下载次数: 1277)
2.4 总结
本实验室结合第一期实例使用的,存储好触摸参数后,以后自动加载就可以了。
|
|