野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11341|回复: 3

触屏问题

[复制链接]
发表于 2016-5-6 10:17:47 | 显示全部楼层 |阅读模式
我的触摸屏是电阻屏,用的XPT2046芯片,现在芯片可以把坐标值算出来了,但是好像emwin 收不到 坐标值,请问是什么原因。
TpState.x = x;
TpState.y = y;
TpState.Pressed = 1;
TpState.Layer = 0;
GUI_PID_StoreState(&TpState);
是通过GUI_PID_StoreState 传值,但是好像emwin 收不到值,芯片是stm32f429,直接通过ltdc控制液晶屏的

emwin初始化是:
  GUI_Init();
       
        PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
        FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
        BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
        CHECKBOX_SetDefaultSkin(CHECKBOX_SKIN_FLEX);
        DROPDOWN_SetDefaultSkin(DROPDOWN_SKIN_FLEX);
        SCROLLBAR_SetDefaultSkin(SCROLLBAR_SKIN_FLEX);
        SLIDER_SetDefaultSkin(SLIDER_SKIN_FLEX);
        HEADER_SetDefaultSkin(HEADER_SKIN_FLEX);
        RADIO_SetDefaultSkin(RADIO_SKIN_FLEX);
        MULTIPAGE_SetDefaultSkin(MULTIPAGE_SKIN_FLEX);
        SPINBOX_SetDefaultSkin(SPINBOX_SKIN_FLEX);       
  /* Setup layer configuration during startup */
  GUI_SetBkColor(GUI_TRANSPARENT);
  GUI_SelectLayer(1);
  GUI_Clear();
  GUI_SetBkColor(GUI_TRANSPARENT);
  GUI_SelectLayer(0);
//        GUI_CURSOR_Show();
        CreateWin();


请问大神是什么原因
回复

使用道具 举报

发表于 2016-5-6 10:58:32 | 显示全部楼层
电阻屏的参考F1的emwin触摸例程
GUI_X_Touch_analog.c文件



void GUI_TOUCH_X_ActivateX(void)
{
// XPT2046_WriteCMD(0x90);
}


void GUI_TOUCH_X_ActivateY(void)
{
  //XPT2046_WriteCMD(0xd0);
}


int  GUI_TOUCH_X_MeasureX(void)
{
    return XPT2046_ReadAdc_Fliter(macXPT2046_CHANNEL_Y);

}

int  GUI_TOUCH_X_MeasureY(void)
{       
    return XPT2046_ReadAdc_Fliter(macXPT2046_CHANNEL_X);
}

回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-6 11:35:17 | 显示全部楼层
flyleaf 发表于 2016-5-6 10:58
电阻屏的参考F1的emwin触摸例程
GUI_X_Touch_analog.c文件

开始我就参考F1的例程,发现一直触摸没有反映。
然后仔细研究下,就按照电容屏的例程,设置的。
我这目前可以读出数值了,比如
TpState.x = 60;
TpState.y = 20;
TpState.Pressed = 1;
TpState.Layer = 0;
GUI_TOUCH_StoreStateEx(&TpState);
直接这样,打开光标,也不显示光标位置

GUI_CURSOR_Show(); 这个光标函数调用后,也没有光标显示出,是什么原因?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-6 11:53:08 | 显示全部楼层
flyleaf 发表于 2016-5-6 10:58
电阻屏的参考F1的emwin触摸例程
GUI_X_Touch_analog.c文件

请问
TpState.x = 60;
TpState.y = 20;
TpState.Pressed = 1;
TpState.Layer = 0;
GUI_TOUCH_StoreStateEx(&TpState);

这个 x,y 是传的像素值吧。比如液晶屏是 800*480的,x值在0-800之间,y值在0-480之间呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-10-2 14:38 , Processed in 0.034938 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表