一、前言

在一般情况下使用电容触摸屏时,都是使用USB直接驱动,但是在前文中我就提及过遇到的问题,就是USB触摸屏和我是用平台不是特别兼容的问题,问题现象在复述一遍,大概就是使用linux核心板USB接口连接ILTTEK的触摸芯片是没有问题的,而使用GOODIX的GT911触摸芯片配合IIC转USB免驱板时,会出现多指触摸然后触摸屏失灵现象,需要重新插拔以下触摸屏USB,或者重启程序,这两种都是无法忍受的,经过很长时间的调试,身为对于系统底层还是小白的我实在是无力解决这个不兼容问题,后来就全力研究如何使用直接驱动的方式,跳过USB免驱板,直接使用系统资源IIC总线信号和RST以及INT引脚,去调用GT911芯片驱动,控制触摸屏。而经过好几天下班时间的研究和与售后耐心的邮件互传下,终于不负我!

二、环境

全志A40i(飞凌A40i核心板)

linux3.10

2401源码包

三、正文

首先附上我更改的文件资源https://download.csdn.net/download/qq_37603131/86797324

1.硬件修改部分

使用核心板的TWI1接口,在找两个引脚配置RST和INT,配置sys_configFCU2401.fex文件,文件内核心修改的地方如下:

[twi1]
twi1_used        = 1
twi1_scl         = port:PB18<2><default><default><default>
twi1_sda         = port:PB19<2><default><default><default>
;----------------------------------------------------------------------------------
;capacitor tp configuration电容触摸
;external int function
;wakeup output function
;notice ---    tp_int_port &  tp_io_port use the same port
;compatible       设备名字
;ctp_used         是否使用
;ctp_name         用作区别gd系列,适配屏幕分辨率
;ctp_twi_id       用作选择iic的adapter,可选1,2
;ctp_twi_addr     指明iic设备地址,与硬件相关
;ctp_screen_max_x 触摸板x最大坐标
;ctp_screen_max_y 触摸板y最大坐标
;ctp_touch_panel_max_x
;ctp_touch_panel_max_y
;ctp_revert_x_flag是否需要反转x坐标,需要置1,反之置0
;ctp_revert_y_flag是否需要反转y坐标,需要置1,反之置0
;ctp_exchange_x_y_flag是否需要xy坐标对换
;ctp_power_ldo    触摸屏电源配置
;ctp_power_ldo_vol触摸屏电压配置
;ctp_int_port     电容屏中断信号GPIO配置
;ctp_wakeup       电容屏唤醒信号GPIO配置
;----------------------------------------------------------------------------------
[ctp]
compatible          = "allwinner,sun50i-ctp-para"
ctp_used            = 1
ctp_name            = "gt9xx_ts"
ctp_twi_id          = 1
ctp_twi_addr        = 0x14
ctp_screen_max_x    = 800
ctp_screen_max_y    = 480
ctp_touch_panel_max_x  = 800
ctp_touch_panel_max_y  = 480
ctp_revert_x_flag   = 0
ctp_revert_y_flag   = 0
ctp_exchange_x_y_flag = 0
ctp_power_ldo       = "vcc-ctp"
ctp_power_ldo_vol   = 3300ctp_int_port        = port:PH02<6><default><default><default>
ctp_wakeup          = port:PH05<1><default><default><0>;----------------------------------------------------------------------------------
;compatible配置名称
;ctp_list_used 支持触摸屏list
;ft5x_ts       是否支持ft5x_ts模组
;gt82x         同上
;gt9xx_ts      同上
;gt9xxnew_ts   同上
;gt811         同上
;zet622x       同上
;aw5306_ts     同上
;----------------------------------------------------------------------------------
[ctp_list]
compatible          = "allwinner,sun50i-ctp-list"
ctp_list_used       = 1
ft5x_ts             = 1
gt82x               = 1
gt9xx_ts            = 1
gt9xxnew_ts         = 1
gt811               = 1
zet622x             = 1
aw5306_ts       = 1

需要注意引脚配置模式,还有TWI的id要对应,我之前就是默认的TWI3,id默认是3,更换TWI1一直没修改ID,后来有糊涂把TWI引脚的模式修改了,这里就是配置资源部分,不得不说,飞凌独立开发的这个config文件针对于不需要深入学习和专业搞linux的人上手还挺快的,无需特别深入的学习设备树,大部分功能只需要修改这个配置文件,就可以了,目前我使用这个配置文件修改了诸多接口,比如SATA,CAN,485,232,双网口,电阻触摸,电容触摸,LVDS,LCD,双LVDS1080P,GPIO等等。

接下来还需要修改的就是系统配置部分,sun8iw11p1smp_oka40i_c_defconfig这个文件,需要将文件内的链接到GT911驱动的部分打开,GT911源码在系统自带的驱动文件中,一层一层查看Makefile文件,并将对应的宏全部在系统配置文件中选择,其中可以设置m和y,m的含义就是编译出ko文件,加载驱动需要手动加载,y的含义就是不编译ko文件,集成在系统驱动中自动加载,一遍调试驱动时需要发现哪里有问题, 选择m编译,当确定之后使用y自动加载即可,也不用在学一段程序调用驱动,直接开机默认执行驱动。

这里我将系统配置文件的宏CONFIG_TOUCHSCREEN_GT9XXNEW_TS=y打开,在执行build.sh时就会带着GT911驱动一起编译了。

之后编译系统镜像包,更新镜像文件到板卡中即可,目前唯一美中不足的就是触摸屏识别成为了鼠标,在点击屏幕时会出现鼠标指针,后续继续研究如何识别为触摸屏,将鼠标指针去掉,插上真正的鼠标之后才会出现鼠标。


凌晨翻来覆去睡不着,看了一下邮箱,飞凌技术发给一个在qt去除鼠标指针的方法,看了一下方法,有了一些灵感,可能不通过qt去除,而是在环境变量删除一些东西也可以,于是乎就开始了起床测试之路。

修改如下:

删除资源中qt5.9.sh环境变量中 evdevmouse部分,于是乎触摸就正常了,不在显示鼠标指针。但是这时候接入有线鼠标大概率是不能用的,于是乎这个环境变量又得特殊标记一下了,仅用于gt911触摸屏使用不持支有限鼠标,实际我并灭有接入鼠标测试,因为家里没有有线鼠标,呜呜呜~

四、结语

坚持,就是胜利!怀揣梦想,树立目标,才不会停止前进的步伐。

A40i使用笔记:调用系统自带驱动GT911触摸屏相关推荐

  1. 安卓手机如何打开php文件夹,Android_Android中调用系统的文件浏览器及自制简单的文件浏览器,调用系统自带的文件浏览器- phpStudy...

    Android中调用系统的文件浏览器及自制简单的文件浏览器 调用系统自带的文件浏览器这很简单: /** 调用文件选择软件来选择文件 **/ private void showFileChooser() ...

  2. [转]mpvue中的小程序调用系统自带查看图片的功能

    mpvue中的小程序调用系统自带查看图片的功能 这里举个栗子: <template><div class="keting"><div class=&q ...

  3. ShareIntentUtil【调用系统自带的分享的工具类】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 根据参考资料的文章,整理了调用系统自带分享的工具类(实现了适配7.0FileProvider的功能),需要搭配<Android ...

  4. android安装自动打开网页,Android调用系统自带浏览器打开网页的实现方法

    Android调用系统自带浏览器打开网页的实现方法 在Android中可以调用自带的浏览器,或者指定一个浏览器来打开一个链接.只需要传入一个uri,可以是链接地址. 启动android默认浏览器 在A ...

  5. Android调用系统自带的文件管理器进行文件选择

    这几天在做的项目网盘.上传时需要用到调用系统自带的文件管理器来选择文件,后来就在考虑怎么调用,网上也搜了很久,没有很好的解决方法,后来在一瞬间发现了一篇不错的文章,借鉴了一下代码. [java] vi ...

  6. 用原生JS实现网页调用系统自带的分享功能

    流量当下的网络大环境,如何让我们的网站更容易出现在网民的视野中?这里我们就用原生JS实现网页调用系统自带的分享功能,为网页增加一个分享功能! 语法参数: url 要共享的 URL( USVString ...

  7. iOS程序中调用系统自带应用(短信,邮件,浏览器,地图,appstore,拨打电话,iTunes,iBooks )...

    在网上找到了下在记录下来以后方便用 在程序中调用系统自带的应用,比如我进入程序的时候,希望直接调用safar来打开一个网页,下面是一个简单的使用: 查看更多iPhone应用程序的调用和第三方应用程序的 ...

  8. Android调用系统自带的文件管理器,打开指定路径

    一.打开系统自带的文件管理器 if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {showTo ...

  9. ios开发调用系统自带的分享

    1.一般情况下提到分享,我们会想到去集成某些第三方的框架,例如很多第三方分享的集合例如友盟的,集成效果如下 这里只涉及到了常用的新浪.微信.及qq: 分享功能:三个平台都比较宽松,只有有appid,都 ...

最新文章

  1. EEPlat vs saleforce 配置 Knowledge Article 演示样例
  2. 日志管理最佳实践:成功的六要诀【解读版】
  3. 朱俊彦团队最新论文:用GAN监督学习给左晃右晃的猫狗加表情,很丝滑很贴合...
  4. php过滤两个坐标,php判断两个坐标的方位角
  5. 逻辑回归阈值_逻辑回归or线性回归,傻傻分不清楚
  6. STM32 基础系列教程 24 - USB_HID_key
  7. Educational Codeforces Round 73 (Rated for Div. 2) F. Choose a Square 线段树 + 二维转一维
  8. 混合App开发,HBuilder开发移动App
  9. GitHub人脸属性编辑神器横空出世!让你爱上异性的自己!
  10. 简单干净的C#方法设计案例:SFCUI.AjaxValue()之三
  11. error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'产生原因
  12. 微信dat文件用什么软件打开方式_dat文件怎么打开微信dat文件用什么软件打开
  13. 专升本英语——应试题型突破——翻译——固定搭配【学习笔记】
  14. 轻松学python(一)
  15. LookupError: Resource omw-1.4 not found. nltk3.7查找近反义词解决方法
  16. 使用 LaTeX 的笔记
  17. BSN-DDC基础网络的DID功能设计
  18. 基于Idea的音乐播放器APP软件设计与实现
  19. Oracle中rowid的用法(全面)
  20. 网页是怎么变灰的?今日Web要求:所有网页变成灰色。

热门文章

  1. SI3933在汽车PKE车钥匙的应用方案
  2. 构建OpenDayLight控制器
  3. Ubuntu18.04下NVIDIA驱动+CUDA11.0安装
  4. [附源码]Node.js计算机毕业设计菜鸟驿站快递分发系统Express
  5. python数据预处理的方法_文本数据预处理的方法
  6. Pyc 文件(了解)
  7. python获取url返回值_python获取url的返回信息方法
  8. 在 Apache Tomcat 服务器上启用 HTTPS 或 SSL 正确方式的分步指南 – 端口 8443
  9. C++入门——构造函数和析构函数
  10. 只需5秒,快速完成电脑大文件复制的技巧