返回信息流板子内核已经加载了触摸屏驱动,而且板子上已经烧有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);
}
}
}
小生菜鸟,不知何解,恳请各位前辈指教~万分感谢~
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #8499同步于 2010/5/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
[求助] 触摸屏测试程序问题
ddvLuffy
2010/5/12镜像同步16 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
不阻塞的话你的程序应该狂刷信息出来啊,因为while,阻塞的话就一直没反应呗
【 在 ddvLuffy (love oo) 的大作中提到: 】
: 我的情况是点击空白处,不显示坐标。但要是点击到QT的图标,进入QT下的一些程序时,会显示一些QT程序函数的警告。。。
: 是不是read函数被阻塞了?
恩 刚学习了一下gdb 我再单步调一下~
【 在 hobby 的大作中提到: 】
: 感觉你现在好像缺乏调试手段,所以也说不清到底哪里出了问题
: LDD3上专有一节讲调试的,可以看看有没有可用的方法定位下问题
: --
: ...................
你确定真的是用read而不是ioctl来访问吗?你先把qt进程杀死试试
【 在 ddvLuffy (love oo) 的大作中提到: 】
: 确认是阻塞在read函数了
: 那是不是应该取消QT的自启动?
: 或者改变设备状态?该如何操作呢?
: ...................
恩 驱动不支持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函数了
: ...................
应该是busybox集成的ps是简化版的吧
kill 409
或者
killall quicklauncher
【 在 ddvLuffy (love oo) 的大作中提到: 】
: 恩 驱动不支持ioctrl
: 只是映射了read函数
: 还有就是 怎样杀死QT进程?呵呵 有点白痴了。。。
: ...................