OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2478|回复: 1

7寸电容屏GUI移植

[复制链接]

27

主题

101

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1007
金钱
1007
注册时间
2015-7-26
在线时间
108 小时
发表于 2016-4-13 01:17:14 | 显示全部楼层 |阅读模式
这两天移植7寸电容屏的触摸部分源代码
int  GUI_TOUCH_X_MeasureX(void)
{
        if(tp_dev.scan(0))//óD′¥Ãt
        {
                return tp_dev.x[0];  
        }else return 0XFFFF;
}

int  GUI_TOUCH_X_MeasureY(void)
{
        if(tp_dev.scan(0))//óD′¥Ãt
        {
                return tp_dev.y[0];  
        }else return 0XFFFF;
}源代码中是这样写的,可是移植进去发现光标不动然后改成

int  GUI_TOUCH_X_MeasureX(void)
{
tp_dev.scan(0);
return tp_dev.x[0];
}

int  GUI_TOUCH_X_MeasureY(void)
{
tp_dev.scan(0);
return tp_dev.y[0];       
}光标是可以动了点button也可以进入子菜单,但是点子菜单中的FRAMEWIN_AddCloseButton,点了按钮有颜色变化,可是没有作用

仿真void _cbMenu0_Close(WM_MESSAGE* pMsg) {
  if (pMsg->MsgId == WM_NOTIFY_PARENT_REFLECTION) {
    WM_DeleteWindow(pMsg->hWinSrc);
        GUI_CreateDialogBox(_aDialogCreate_main, GUI_COUNTOF(_aDialogCreate_main), &_cbMain, 0, 0, 0);  
    return;                                       /* We are done ! */
  }
  BUTTON_Callback(pMsg);
}发现pMsg->MsgId没有值,不知道如何解决。
找了两天问题依然不明白,然后又反过来研究之前那个光标为什么不动的原因,手里有一个原子大哥的7寸电容屏UCGUI的源代码,然后仿真在GUI_TOUCH_Exec();中设置断点,触摸就进入断点,然后发现一个奇怪的现象,就是如果全速运行时触摸哪里光标就会移动到哪里,但是设置了那个断点后,触摸进入断点,然后再全速运行,光标不会移动到我刚触摸的地方,然后我一级级的找发现
static void _StoreUnstable(int x, int y) {
  static int _xLast = -1;
  static int _yLast = -1;
  int xOut, yOut;

  if ((x != -1) && (y != -1) && (_xLast != -1) && (_yLast != -1)) {
    xOut = _xLast;   
    yOut = _yLast;   
  } else {
    xOut = -1;
    yOut = -1;   
  }
//  _xLast = x;//源代码
//  _yLast = y;//源代码
  xOut = x;//修改后的
  yOut = y;//修改后的
  GUI_TOUCH_StoreUnstable(xOut, yOut);
}

这个函数需要运行两遍,首先_xlast=x然后再进入一次xout=_xlast这样才将x坐标传过去,所以在仿真的时候进入断点然后再全速运行光标就没有到触摸的位置,然后我就把源代码改成修改后的只运行一次,这样之前源代码中int  GUI_TOUCH_X_MeasureX(void)  int  GUI_TOUCH_X_MeasureY(void) 的就可以了,以前的问题都可以解决了,可是这个函数为什么要运行两次呢?
这样修改之后对一些其他的控件功能有没有影响呢?不知道我的思维进入误区没,各位大神帮忙指点迷津
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

27

主题

101

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1007
金钱
1007
注册时间
2015-7-26
在线时间
108 小时
 楼主| 发表于 2016-4-13 01:44:03 | 显示全部楼层
问题已经出现了,点一个button显示一个数字,现在就是有时候点一下然后就连续出现几个数字,头疼,那应该怎么改呢?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-1 18:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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