欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

STM32 移植 STemwin(Touch)

程序员文章站 2022-03-06 08:01:08
...

上篇讲到了STemwin的基本移植步骤,这里再讲下Touch的支持。

  1. 驱动好自己的触摸屏,准备好测量X,Y 返回为ADC值的函数。这个一般也不难
  2. 准备好GUI_TOUCH_X.C文件,这里比较坑的就是这个文件没有包含在STemwin的包里面(至少5.32里面没有),需要自己写一个,其实内容很简单,如下
#include "GUI.h"
#include "XPT2046.h"

void GUI_TOUCH_X_ActivateX(void) {
}

void GUI_TOUCH_X_ActivateY(void) {
}

int  GUI_TOUCH_X_MeasureX(void) {
  return XPT2046_READ_X();
}

int  GUI_TOUCH_X_MeasureY(void) {
  return XPT2046_READ_Y();
}

添加好X,Y的测量函数, x,y的Activate函数可以空。

  1. 回到LCDConf_FlexColor_Template.c文件中增加触屏的校准函数。
#define TOUCH_AD_LEFT 	3930 		//触摸左上角x轴的AD值(注意是AD值,也叫物理坐标)
#define TOUCH_AD_RIGHT 	166			//触摸屏幕右下角边x轴的AD值
#define TOUCH_AD_TOP 	3930  		//触摸左上角y轴的AD值
#define TOUCH_AD_BOTTOM 233			//触摸右上角y轴的AD值
void LCD_X_Config(void) {

GUI_DEVICE_CreateAndLink(&GUIDRV_Template_API, GUICC_M565, 0, 0);
LCD_SetSizeEx (0, XSIZE_PHYS , YSIZE_PHYS);
LCD_SetVSizeEx(0, VXSIZE_PHYS, VYSIZE_PHYS);

GUI_TOUCH_Calibrate(GUI_COORD_X, 0, 319, TOUCH_AD_LEFT, TOUCH_AD_RIGHT);
GUI_TOUCH_Calibrate(GUI_COORD_Y, 0, 479, TOUCH_AD_TOP, TOUCH_AD_BOTTOM);

}

4.回到Main.c增加 GUI_TOUCH_Exec()

while (1)
  {
		GUI_Delay(10);
		GUI_TOUCH_Exec();
  }

好了这样就设置好了,很简单吧。
Enjoy!
STM32 移植 STemwin(Touch)

相关标签: STM32 stm32