OpenEdv-开源电子网

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

STemwin触摸屏移植一直没反应

[复制链接]

3

主题

7

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-11-12
在线时间
3 小时
发表于 2016-11-12 16:45:26 | 显示全部楼层 |阅读模式
1金钱
我对照原子的PDF教程移植EMwin,移植到触摸屏的时候没有认可反应
程序:


void Mytouch_MainTask(void)
{
        int i;
                GUI_PID_STATE TouchState;
                int xPhys;
                int yPhys;
                GUI_Init();
                WM_SetCreateFlags(WM_CF_MEMDEV);
                GUI_SetFont(&GUI_Font20_ASCII);
                GUI_CURSOR_Show();
                GUI_CURSOR_Select(&GUI_CursorCrossL);
                GUI_SetBkColor(GUI_WHITE);
                GUI_SetColor(GUI_BLACK);
                GUI_Clear();
                GUI_DispString("Measurement of\nA/D converter values");
                while (1)
                {
                                GUI_TOUCH_GetState(&TouchState); // Get the touch position in pixel
        //                        printf("TouchState.Layer=%d    TouchState.Pressed=%d  ",TouchState.Layer,TouchState.Pressed,TouchState.x);
//                                printf("TouchState.x=%d  ");
                       
                        xPhys = GUI_TOUCH_GetxPhys(); // Get the A/D mesurement result in x
                                yPhys = GUI_TOUCH_GetyPhys(); // Get the A/D mesurement result in y
//                                printf("%d  %d  ",xPhys,yPhys);       
                                GUI_SetColor(GUI_BLUE);
                                GUI_DispStringAt("Analog input:\n", 0, 40);
                                GUI_GotoY(GUI_GetDispPosY() + 2);
                                GUI_DispString("x:");
                                GUI_DispDec(xPhys, 4);
                                GUI_DispString(", y:");
                                GUI_DispDec(yPhys, 4);
                                GUI_SetColor(GUI_RED);
                                GUI_GotoY(GUI_GetDispPosY() + 4);
                                GUI_DispString("\nPosition:\n");
                                GUI_GotoY(GUI_GetDispPosY() + 2);
                                GUI_DispString("x:");
                                GUI_DispDec(TouchState.x,4);
                                GUI_DispString(", y:");
                                GUI_DispDec(TouchState.y,4);
                                delay_ms(50);
                        };
}

就这个 例子
一直显示 0  
底层的 int  GUI_TOUCH_X_MeasureX(void)    和 int  GUI_TOUCH_X_MeasureY(void)   也没有调用  
int  GUI_TOUCH_X_MeasureX(void)
{
                TOUCH_TYPE_DEF touch;       
        int i;
        i=touch_read(CMD_RDX);
        printf("CMD_RDX=%d   ",i);
        return  touch_read(CMD_RDX);
}


int  GUI_TOUCH_X_MeasureY(void)
{       
        int i;
        i=touch_read(CMD_RDX);
        printf("CMD_RDY=%d  ",i);
        return  touch_read(CMD_RDY);
}


后面 我直接跳过这个 步骤  直接 在定时器里每10ms 调用  这个 函数         GUI_TOUCH_Exec();

然后 int  GUI_TOUCH_X_MeasureX(void)    和 int  GUI_TOUCH_X_MeasureY(void)  个调用了 但是打印出来的不是 0  就是  4095  
我裸机调用touch_read(CMD_RDX);   都是可以的。
不知道什么问题 ,头都炸了  ,新人求教啊。

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-11-13 22:47:39 | 显示全部楼层
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2016-9-17
在线时间
4 小时
发表于 2016-11-17 16:19:47 来自手机 | 显示全部楼层
换个中断试试货中断工作状态不对
回复

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-11-12
在线时间
3 小时
 楼主| 发表于 2016-11-21 10:31:33 | 显示全部楼层
加上操作系统就好了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 03:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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