主题 : Mini2440Linux下读取触摸屏数据 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 11832
精华: 0
发帖: 37
金钱: 185 两
威望: 37 点
贡献值: 0 点
综合积分: 74 分
注册时间: 2009-12-22
最后登录: 2017-03-13
楼主  发表于: 2015-01-25 23:48

 Mini2440Linux下读取触摸屏数据

打算做一个推箱子的游戏
使用SDL
千辛万苦 终于在屏幕上画出了 游戏的画面
结果发现 我一摁 屏幕 QT的画面又弹出来了,而且触屏的数据没有传送到我的SDL(我本来意味会传输一个鼠标的参数过来)

在telnet连接方式下 vi  /etc/init.d/rcS 文件, 关掉 QT的自启动

再运行我地推箱子的游戏,不再弹出QT的界面了,就是触摸屏没有反应

那么只好直接读取 触摸屏的数值了 参考网上的代码 修改得到

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <linux/input.h>

int main(int argc, char **argv)
{
    int fd,i;
    struct input_event inmyself;
    fd=open("/dev/input/event0",O_RDWR);    
// O_RDWR | O_NONBLOCK  其中 O_NONBLOCK 设置为非阻塞方式
    if(fd==-1)
    {
        printf ("open  Touch err:%d\n",fd);
    }
    else
    {
        printf("open Touch Ok:%d\n",fd);
        //for(i=0;i<10;i++)
        while(1){
            read(fd, &inmyself, sizeof(inmyself));
            printf("data:%d %d %d\r\n",
                    inmyself.type,inmyself.code,inmyself.value);
        }
        close(fd);
    }
    return 0;
}

读取到的数据:
open Touch Ok:3
data:3 0 405
data:3 1 533
data:3 24 1
data:0 0 0
data:3 0 395
data:3 1 554
data:0 0 0
data:3 0 396
data:3 1 558
data:0 0 0
data:3 24 0
data:0 0 0

继续完善我的推箱子
我在我的Mini2440Linux下的第一个作品 进行中....

ucos 播放视频 TCPIP 都不会 呵呵
级别: 论坛版主
UID: 103400
精华: 0
发帖: 434
金钱: 2235 两
威望: 447 点
贡献值: 0 点
综合积分: 868 分
注册时间: 2014-04-24
最后登录: 2016-10-10
1楼  发表于: 2015-01-26 11:24

 回 楼主(ljxh401) 的帖子

完善了再发上来大家学习一下
级别: 新手上路
UID: 11832
精华: 0
发帖: 37
金钱: 185 两
威望: 37 点
贡献值: 0 点
综合积分: 74 分
注册时间: 2009-12-22
最后登录: 2017-03-13
2楼  发表于: 2015-01-26 11:33
摁 在这里发帖是 为了记录我 学习的每一步
ucos 播放视频 TCPIP 都不会 呵呵