OpenEdv-开源电子网

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

求助, emWin 窗口/控件触摸无效

[复制链接]

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2016-6-20
在线时间
39 小时
发表于 2020-11-30 18:27:54 | 显示全部楼层 |阅读模式
20金钱
本帖最后由 吉安的心该有 于 2020-12-3 03:22 编辑

    emWin版本5.44, 移植的是官方库中的STemWin。 显示与触摸已正常运行,通过GUI_PID_GetState可正确打印出坐标点
并且GUI_CURSOR_Show光标也能正确跟随触摸移动,驱动问题还有飞点没有解决。
   在背景窗口直接创建按钮控件可以正常控制,使用GUIBuilder创建对话框,可以正常显示,但是对话框内部的控件触摸没
有反应。网上逛了一圈也没有找到解决的办法。用原子哥的ListboxDemo测试也是一样的现象,光标保持在对话框的左上角
触摸不同的位置,对话框也会跟随触摸点移动,不过就是控制不了对话框内部的控件。

    哪位大佬帮个忙,支支招,救我于苦海!


lADPBF8a7mo_VnDNC9DND8A_4032_3024.jpg_720x720q90g.jpg lADPBFf_8SCusq3NC9DND8A_4032_3024.jpg_720x720q90g.jpg


    板子阿波罗F767搭配7寸屏,附上工程文件
CubeHAL_STemWin_Examples.rar (17.08 MB, 下载次数: 2)

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2020-12-1 02:15:33 | 显示全部楼层
回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2016-6-20
在线时间
39 小时
 楼主| 发表于 2020-12-1 18:35:24 | 显示全部楼层

原子哥既然来了不留下点什么嘛
回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2016-6-20
在线时间
39 小时
 楼主| 发表于 2020-12-3 03:03:17 | 显示全部楼层
找到原因,是因为移植时贪图省事,触摸点按下后没有正确释放。


                            hItem=WM_GetDialogItem(pMsg->hWin,ID_LISTBOX_0);
                            listboxitem=LISTBOX_GetSel(hItem);                  //获取选中的项目标号
                            printf("\r\nProject Test, listboxitem = %d \r\n", listboxitem);
                            LISTBOX_GetItemText(hItem,listboxitem,textbuf,5);//获取选中的条目的内容
                            textbuf[18] = '\0';
                            printf("Project Test, textbuf = %s\r\n", textbuf);

现在产生新的问题,还是原子哥的ListboxDemo例程,每次运行到LISTBOX_GetItemText就会进入硬件异常。
注释获取文本这一段就可以正常,Printf项目标号也是正确的。请问是哪方面的问题。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2020-12-4 02:15:49 | 显示全部楼层
吉安的心该有 发表于 2020-12-3 03:03
找到原因,是因为移植时贪图省事,触摸点按下后没有正确释放。

可以联系下我们淘宝技术支持
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2016-6-20
在线时间
39 小时
 楼主| 发表于 2020-12-5 00:14:59 | 显示全部楼层


    4L LISTBOX_GetItemText 进入异常的问题已解决,使能微库后就可正常运行。
    其中曲折不表,最后发现微库是因为仿真调试时,进入异常中断查看调用栈。
    程序是因为调用__rt_memcpy进入异常,虽然已重定向printf并使用标准库,
    试一试的态度使能了微库,问题解决....

                                   
                   无标题.jpg

    虽然问题解决,但是百思不得其解。
    使用MEMCPY为什么要使能微库,测试过在不使能微库时直接使用函数是没有问题的。
  1. #if 1
  2. #pragma import(__use_no_semihosting)            
  3. //标准库需要的支持函数                 
  4. struct __FILE
  5. {
  6.         int handle;
  7. };

  8. FILE __stdout;      
  9. //定义_sys_exit()以避免使用半主机模式   
  10. void _sys_exit(int x)
  11. {
  12.         x = x;
  13. }
  14. //重定义fputc函数
  15. int fputc(int ch, FILE *f)
  16. {        
  17.         while((USART1->ISR&0X40)==0);//循环发送,直到发送完毕   
  18.         USART1->TDR=(uint8_t)ch;      
  19.         return ch;
  20. }

  21. //__use_no_semihosting was requested, but _ttywrch was referenced
  22. void _ttywrch(int ch)
  23. {
  24. ch = ch;
  25. }

  26. #endif
复制代码

     希望有大牛可以帮我扫扫盲!谢谢






回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 11:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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