BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #8499同步于 2010/5/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

[求助] 触摸屏测试程序问题

ddvLuffy
2010/5/12镜像同步16 回复
板子内核已经加载了触摸屏驱动,而且板子上已经烧有QT,可以正常操作使用。说明触摸屏硬件及驱动加载都没有问题。 写了一个简单的触摸屏测试程序,但一执行,程序一直在跑,但点击屏幕,没有任何结果,也无报错。ctrl+c退出,仍然没有任何结果。 整个操作过程是:板子上电都会自启动linux,停留在QT界面,主机端操作板子通过NFS挂载文件,通过终端命令行执行测试程序。会不会是QT程序与测试程序的冲突?需要在QT不起动的情况下测试吗? 测试程序如下: #include <stdio.h> #include <stdlib.h> #include <errno.h> #define DEVICENAME "/dev/touchscreen/0raw" typedef struct ts_event { unsigned short pressure; unsigned short x; unsigned short y; unsigned short pad; }ts_event; int main(void) { int ts_fd,ret; int x_raw,y_raw; ts_event *ts_evt; ts_fd=open(DEVICENAME,0); if(ts_fd<0) { perror("ts_open :"); exit(0); } ts_evt=malloc(sizeof(ts_event)); memset(ts_evt,0, sizeof(struct ts_event)); while(1) { ret=read(ts_fd,ts_evt,sizeof(*ts_evt)); if(ret>0) { printf("x: %d\n", ts_evt->x); printf("y: %d\n", ts_evt->y); printf("pressure: %d\n", ts_evt->pressure); } else { perror("read the raw data :"); exit(0); } } } 小生菜鸟,不知何解,恳请各位前辈指教~万分感谢~
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
ddvLuffy机器人#1 · 2010/5/12
是不是QT程序占用了设备?该怎样查看一下?
ddvLuffy机器人#2 · 2010/5/13
我的情况是点击空白处,不显示坐标。但要是点击到QT的图标,进入QT下的一些程序时,会显示一些QT程序函数的警告。。。 是不是read函数被阻塞了?
hobby机器人#3 · 2010/5/13
感觉你现在好像缺乏调试手段,所以也说不清到底哪里出了问题 LDD3上专有一节讲调试的,可以看看有没有可用的方法定位下问题
ArmStrong机器人#4 · 2010/5/13
不阻塞的话你的程序应该狂刷信息出来啊,因为while,阻塞的话就一直没反应呗 【 在 ddvLuffy (love oo) 的大作中提到: 】 : 我的情况是点击空白处,不显示坐标。但要是点击到QT的图标,进入QT下的一些程序时,会显示一些QT程序函数的警告。。。 : 是不是read函数被阻塞了?
ddvLuffy机器人#5 · 2010/5/13
恩 刚学习了一下gdb 我再单步调一下~ 【 在 hobby 的大作中提到: 】 : 感觉你现在好像缺乏调试手段,所以也说不清到底哪里出了问题 : LDD3上专有一节讲调试的,可以看看有没有可用的方法定位下问题 : -- : ...................
ddvLuffy机器人#6 · 2010/5/13
确认是阻塞在read函数了 那是不是应该取消QT的自启动? 或者改变设备状态?该如何操作呢?
ArmStrong机器人#7 · 2010/5/13
你确定真的是用read而不是ioctl来访问吗?你先把qt进程杀死试试 【 在 ddvLuffy (love oo) 的大作中提到: 】 : 确认是阻塞在read函数了 : 那是不是应该取消QT的自启动? : 或者改变设备状态?该如何操作呢? : ...................
ddvLuffy机器人#8 · 2010/5/13
恩 驱动不支持ioctrl 只是映射了read函数 还有就是 怎样杀死QT进程?呵呵 有点白痴了。。。 板子上ps的结果是: PID Uid VSZ Stat Command 1 root 1816 SW init 2 root SWN [ksoftirqd/0] 3 root SW< [events/0] 4 root SW< [khelper] 5 root SW< [kthread] 21 root SW< [kblockd/0] 24 root SW [khubd] 77 root SW [pdflush] 78 root SW [pdflush] 80 root SW< [aio/0] 79 root SW [kswapd0] 286 root SW [kseriod] 341 root SW [mtdblockd] 375 root SW< [krfcommd] 391 root 19344 SW ./qpe 392 root 1828 SW -sh 393 root 1816 SW init 408 root 9008 SW< /usr/bin/qss 409 root 12520 SWN /usr/bin/quicklauncher 414 root SW< [rpciod/0] 422 root [] 429 root 1820 RW ps 话说板子上不能执行ps -a,-ef等命令, 报错:ps: invalid option -- e 这又何解? 杀死进程倒是没问题~kill -9 ... 【 在 ArmStrong 的大作中提到: 】 : 你确定真的是用read而不是ioctl来访问吗?你先把qt进程杀死试试 : 【 在 ddvLuffy (love oo) 的大作中提到: 】 : : 确认是阻塞在read函数了 : ...................
ArmStrong机器人#9 · 2010/5/13
应该是busybox集成的ps是简化版的吧 kill 409 或者 killall quicklauncher 【 在 ddvLuffy (love oo) 的大作中提到: 】 : 恩 驱动不支持ioctrl : 只是映射了read函数 : 还有就是 怎样杀死QT进程?呵呵 有点白痴了。。。 : ...................