Chinaunix

标题: 关于Linux下触摸屏驱动的若干问题 [打印本页]

作者: hedynasty    时间: 2010-07-19 09:18
标题: 关于Linux下触摸屏驱动的若干问题
各位前辈:如题,小弟现在在搞一个Linux下的触摸屏驱动,现有如下几个问题请教,恳请指点,谢谢!

要求:触摸屏通过USB口接到开发板(S3C2440为主芯片的)上,当用笔在触摸屏上滑动时,有一个鼠标箭头在开发板屏幕的相应位置显示;

问题:
1.要实现要求的功能需要哪些驱动?除了USB驱动,触摸屏驱动外还有吗?
2.要在开发板的屏幕显示一个鼠标,那就必须要在Qt或别的图形界面下显示对吗?
3.如果要在Qt下显示鼠标,是不是将触摸屏的数据作为Qt的鼠标输入来实现?
4.看了宋宝华的《Linux设备驱动开发详解》中的“触摸屏的设备驱动”那节内容,其中的结果是将触点的位置(X,Y坐标)数据读出来,是不是要将这个坐标数据送到Qt的相关函数中经过处理实现一个鼠标箭头的显示?
作者: 0vk0    时间: 2010-07-23 14:55
是有系统的还是直接在空板子上实现触摸屏驱动
作者: ljysyn    时间: 2010-07-23 15:38
内核里好像有个usb LCD的驱动。
作者: hedynasty    时间: 2010-07-26 11:14
回0vk0 :是在有Linux系统的板子上实现USB接口的触摸屏驱动,是不是需要自己参考现有的驱动改写?
回ljysyn :那个是USB接口的液晶屏驱动,是否有USB接口的触摸屏驱动?
谢谢两位!
作者: klanet    时间: 2010-07-26 11:44
触摸屏的控制芯片是什么?
作者: hedynasty    时间: 2010-07-26 13:58
回5楼:触摸屏控制芯片好像是个51单片机,具体型号不清楚,需要知道这个吗?
作者: chengxuetao    时间: 2010-07-26 16:48
参考下面的代码吧
drivers/input/touchscreen/usbtouchscreen.c
作者: klanet    时间: 2010-07-26 20:17
不知道芯片型号 你怎么知道内核有没有相关的驱动支持
作者: linux初学三月    时间: 2010-07-26 20:17
在有Linux系统的板子上实现USB接口的触摸屏驱动,那就得根据现有驱动改
作者: linux初学三月    时间: 2010-07-26 20:18
回LZ,没听说过USB接口的液晶屏驱动
作者: hedynasty    时间: 2010-07-27 10:30
回复 7# chengxuetao


    这个驱动是专门应用于这个3M/Microtouch EX II series 的USB触摸屏控制器的吗?
作者: chengxuetao    时间: 2010-07-27 15:33
这个只是参考代码啊
作者: hedynasty    时间: 2010-07-27 16:46
参考代码什么意思?如果说对于我的项目来说是参考那我知道。还是不能直接编译加载到内核中吗?可是程序注释里面直接列出了所支持的一大堆触摸屏产品。不过好像没看到有关硬件设置的代码。
作者: hedynasty    时间: 2010-07-28 09:45
现在将触摸屏通过USB口接到开发板上显示如下:

[root@FriendlyARM /]# usb 1-1.1: new full speed USB device using s3c2410-ohci an
d address 3
usb 1-1.1: New USB device found, idVendor=0ed1, idProduct=7851
usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1.1: Product: TABLET
usb 1-1.1: Manufacturer: Morgan
usb 1-1.1: configuration #1 chosen from 1 choice
generic-usb: probe of 0003:0ED1:7851.0001 failed with error -22

麻烦高手帮看看现在是什么情况?
作者: chengxuetao    时间: 2010-07-28 17:51
郁闷鸟,你是想要现成的代码啊!那你去找供应商要嘛

参考代码就是不一定能正常工作,需要自己调试的嘛
所有代码都ok了,还要我们做驱动的干嘛

对了,要用这个代码要现把你的vid和pid加到id_table中哦!
作者: hedynasty    时间: 2010-07-29 09:08
知道了,谢谢
作者: hedynasty    时间: 2010-08-11 14:38
各位好,通过修改内核里的drivers/input/touchscreen/usbtouchscreen.c已经驱动了触摸屏,不过还是有一些问题没有解决,希望指点一下,谢谢!
问题如下:
1.现在触摸屏通过USB口接到开发板上时已经可以正常工作了,就是拿笔在触摸屏上滑动在开发板的屏幕上可以显示运动的鼠标箭头了,但是在开发板上显示的鼠标位置与在触摸屏上笔的触点位置不一样(例如:笔在触摸屏的中央而开发板上显示的鼠标不在中央;或是笔从触摸屏最左端滑向最右端但是开发板上的鼠标却不能从最左端滑向最右端,只是运动了一端而已)。我已将程序中XXX_read_data()中相关部分改成了我所用触摸屏的参数,不知道还是哪里的问题,请指点一下。
2.程序中有几处不明白的地方:struct usbtouch_device_info结构体中定义的int rept_size和void (*process_pkt)和int  (*get_pkt_len) 分别用来干什么的?

高手指点一下,多谢!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2