OpenEdv-开源电子网

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

调用WM_MULTIBUF_Enable(1)之后,触屏的光标冻住

[复制链接]

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2019-6-19
在线时间
14 小时
发表于 2022-8-1 12:42:51 | 显示全部楼层 |阅读模式
10金钱
在移植F767的RGB屏过程中发现一个奇怪的事情,就是在激活MULTIBUF之后,触屏的光标就会冻住,没有任何反应,然而从串口输出的坐标数据来看,触摸屏是在工作的。
不管是在main()函数中注释掉调用WM_MULTIBUF_Enable(1);或者在Lin文件中把#define NUM_BUFFERS  3改为1以屏蔽GUI_MULTIBUF_ConfigEx()的调用,反正只要不激活MULTIBUF,看起来就是正常的。否则光标就会一动不动。
Lin驱动是基于F756的例程修改的,核心内容没有动。不论是裸机还是带操作系统,都会发生这种情况。

恳请高手予以指点!

main函数的相关内容:

。。。硬件初始化。。。

//        WM_MULTIBUF_Enable(1);

        GUI_Init();
        WM_SetCreateFlags(WM_CF_MEMDEV);

        GUI_CURSOR_Show();
       
        GUI_SetBkColor(GUI_BLUE);
        GUI_SetColor(GUI_YELLOW);
        GUI_Clear();
       
        GUI_SetFont(&GUI_Font32_ASCII);
        GUI_DispStringHCenterAt("Hello, world!", 400, 200);

  /* Infinite loop */
  while (1)
  {
        GUI_Delay(100);
  }


触屏处理的接口函数:
int  GUI_TOUCH_X_MeasureX(void)
{
        Goodix_TS_ReadPoints();
        if(lcdltdc.dir==1)
                return  TouchPoints.points[0].x;
        else
                return  TouchPoints.points[0].y;
}

int  GUI_TOUCH_X_MeasureY(void)
{       
        Goodix_TS_ReadPoints();
        if(lcdltdc.dir==1)
                return  TouchPoints.points[0].y;
        else
                return  TouchPoints.points[0].x;
}

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

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 09:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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