九鼎创展论坛

标题: 7寸电容屏linux下QT的驱动(ft5x06)修改 [打印本页]

作者: wangzm    时间: 2012-9-7 16:32
标题: 7寸电容屏linux下QT的驱动(ft5x06)修改
本帖最后由 wangzm 于 2012-9-7 16:37 编辑

项目需要用linux系统,QT来做界面,电容屏,而下载光盘中QT是不支持电容屏的

网上找了下,主要就是说要把电容屏模拟成电阻屏与tslib配合上。只说了把ABS_MT_POSITION_X,ABS_MT_POSITION_Y,ABS_MT_TOUCH_MAJOR改成ABS_X,ABS_Y,ABS_PRESSURE,最后再input_sync
经过对内核代码分析和多次试验,终于成功。
主要思路:搜索代码里带MT的字符串的,分析代码,并参考电阻屏驱动结构。
1. 本论坛下载电容屏驱动,ft5x06_ts.h 里 #define CFG_MAX_TOUCH_POINTS  置为1
2. ft5x06_ts.c里面,static void ft5x0x_report_value(void)把ABS_MT_POSITION_X改成ABS_X, y的改成ABS_Y ABS_MT_TOUCH_MAJOR改成ABS_PRESSUSER,值赋1,input_mt_sync去掉,其他带MT的都注释掉,static void ft5x0x_ts_release里pressure赋值为0
3. static int ft5x0x_ts_probe函数里带MT的就保留三个与 X,Y,PRESSURE有关的input_set_abs_params 函数,set_bit带MT的都注释掉。
4. 将驱动加入内核并选中,就是kconfig什么的剪切一下,然后直接make,不要按手册上的./mk,那个是个脚本
5. 启动后,到tslib目录里运行./ts_test 看看吐不吐坐标。不吐多数是有驱动没加载,内核里touchscreen里goodix和solomon也要选上,需要用到其中代码和函数。
5. 查屏对应的event号,用“cat /proc/bus/input/devices”查看,对应修改/etc/profile和/bin里的QT脚本对应的event号。再重启就可以在qt里用触摸操作了,QT4.5可以,qtopia操作点小,不建议使用。
因项目涉及东西多,暂时没有多余时间测试完善代码,请各位多提意见!

附件是代码,内核配置文件及编译好的内核,对应event4。

fxt5x06driver.part1.rar

976.56 KB, 下载次数: 150

fxt5x06driver.part2.rar

976.56 KB, 下载次数: 129

fxt5x06driver.part3.rar

976.56 KB, 下载次数: 117

fxt5x06driver.part4.rar

452.17 KB, 下载次数: 114


作者: armeasy    时间: 2012-9-7 16:40
赞一个
作者: armeasy    时间: 2012-9-9 13:04

作者: 小白    时间: 2012-9-11 06:29
好东西!
作者: chongzi    时间: 2012-9-12 14:30
顶一个,谢谢楼主分享
作者: quext    时间: 2012-9-25 17:39
用楼主提供的内核了,我的7寸电容屏还是没用.. 为什么??
作者: quext    时间: 2012-9-25 17:40
我错了,没看说明.. 还得改配置....
作者: heycare    时间: 2012-11-20 09:37
楼主的硬件平台是哪个?
作者: 大熊    时间: 2013-11-23 20:27
牛人一个
作者: wsx55200405    时间: 2015-7-4 02:24
好东西,我就喜欢




欢迎光临 九鼎创展论坛 (http://bbs.9tripod.com/) Powered by Discuz! X3.2