历史上的今天
今天是:2025年03月15日(星期六)
2020年03月15日 | STM32 移植 STemwin(Touch)
2020-03-15 来源:eefocus
上篇讲到了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, 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!
史海拾趣
|
事无巨细,无源蜂鸣器 CEPARK AVR学习板上,最简单的内容也许就是蜂鸣器了。当然如果你硬要用它来唱歌的话,那还是有点难度的。所以我们还是让它先发出“滴滴“声好了。 先来拓展拓展我们的知识吧(内容部 ...… 查看全部问答> |
|
小弟定义了一个结构体,然后想用来进行windows和wince通信,内容是文件的一些信息。然后把文件从windows传到wince上去。不过每次传都收不到真确的东西。请问我哪里有问题,是wince的Unicode的问题吗?… 查看全部问答> |
|
一个DLL,一个exe工程,加载dll使用#pragma comment lib形式,在EVC下可以运行的; 但现在要移植到ce6下,使用vs2005编译通过,部署也成功,但运行不起来,调试发现连APP的构造函数也没运行,就报错提示:管道的另一端上无任何进程。网上搜索没有 ...… 查看全部问答> |
|
GPIO_StructInit(&GPIO_InitStruct); GPIO_InitStruct.GPIO_Direction = GPIO_PinInput; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6; GP ...… 查看全部问答> |
|
T6963c的显示一直有横线不停的从上向下刷,我在左上角显示的一个字符。只有当那条线刷到最上边时,看一下就没了,不过那个字符是msp430送到LCM的那个。 有没有高人指点一下,是那里出的问题?… 查看全部问答> |




