上篇讲到了STemwin的基本移植步骤,这里再讲下Touch的支持。
- 驱动好自己的触摸屏,准备好测量X,Y 返回为ADC值的函数。这个一般也不难
- 准备好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函数可以空。
- 回到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,