触摸屏驱动实验教程
——疯壳·嵌入式平板开发

第一节 input 输入子系统简单介绍 --- rockchip_gslX680_rk3168.c

触摸屏驱动注册到 input 子系统中后要遵循的框架结构如下:
1.input dev 的注册,参考 gsl_ts_init_ts()函数;
2.input 事件的注册,这部分没有明显的调用 input 子系统的 input_register_handler()函数,说明是用的系统缺省注册的 handler,即 evdev --- 一个原始的(raw)输入设备事件。


图1

第二节 电路原理图介绍

下图来源于文档 3128_sdk_a02_20170325.pdf 中第 19 页。
如下图可以确定 TP 是通过 I2c 与 cpu 相互通信的,cpu 作为主设备,TP 作为从设备。TOUCH_INT 是用中断的形式用作告诉 cpu 已经有触摸产生,cpu 可以从 I2c 接口读数据了。TOUCH_RST 是用作触摸的休眠/唤醒。


图2

第三节 TP 驱动代码结构

$(dir)\rk3128-source\kernel\drivers\input\touchscreen\rockchip_gslX680_rk3128.c
--- input device driver
$(dir)\rk3128-source\kernel\drivers\input\evdev.c
--- input event handler

第四节 .config 文件的配置选择

kernel 目录中输入 make ARCH=arm menuconfig 然后按下列步骤选择
Device Drivers    --->
Input device support---> 
Touchscreens    --->
<*>    gslX680 touchscreen driver

选择之后在.config 文件中会有如下项被设置:
CONFIG_TOUCHSCREEN_GSLX680=y

相应的配置文件目录位于:
X:\rk3128-study\rk3128-source\kernel\drivers\input\touchscreen\Kconfig
config TOUCHSCREEN_GSLX680

tristate "gslX680 touchscreen driver" 
help
gslX680 touchscreen driver

第五节 实验代码

1.dts part:


代码1
2.增加一个可以动态测试的函数到驱动中,用户可以通过 adb shell 或者串口去输入数据完成触摸屏功能测试。


代码2
3.测试命令
命令输入路径/sys/class/touchscreen_test 
关闭触摸功能:
echo sleep > touchscreen 
echo wake > touchscreen
镜像触摸屏坐标:
echo mirror > touchscreen 
4.代码调试中遇到问题
触摸挂上去后没有反应:a.中断产生了吗?可以通过在中断响应函数中增加调试信  息;b.I2c 通信正常吗?这个可能要接个示波器或 usb 逻辑分析仪去看波形是否正常。

第六节 实验步骤 --- 镜像后的坐标如何调节

cd    /sys/class/touchscreen_test 
echo mirror > touchscreen

第七节 实验现象
点击位置倒向,需要修改代码
report_data()中的两个地方 --- 自己做实验了

详情地址:https://fengke.club/GeekMart/views/offline/android  
套件地址:https://fengke.club/GeekMart/su_fHnaDyD1o.jsp
视频地址:https://fengke.club/GeekMart/su_f5W0Cuz3p.jsp

【嵌入式开发教程6】手把手教你做平板电脑-触摸屏驱动实验教程相关推荐

  1. 【疯壳·嵌入式平板开发教程5】手把手教你做平板电脑-触摸屏驱动实验教程

    触摸屏驱动实验教程 --疯壳·嵌入式平板开发 第一节 input 输入子系统简单介绍 --- rockchip_gslX680_rk3168.c 触摸屏驱动注册到 input 子系统中后要遵循的框架结 ...

  2. 【嵌入式开发教程7】手把手教你做平板电脑-音频驱动实验教程

    音频驱动实验教程 --疯壳·嵌入式平板开发       图1      如上图是音频模块 codec 和 cpu 连接框图,主要由三部分组成:     I2C 总线 - cpu 通过它实现对 Code ...

  3. 【嵌入式开发教程9】手把手教你做平板电脑-WIFI 驱动实验教程

    WIFI 驱动实验教程 --疯壳·嵌入式平板开发 第一节 电路原理图介绍 下图来源于文档 3128_sdk_a02_20170325.pdf 中第 16 页.   CMD 信号(用于传送命令和反应): ...

  4. 【嵌入式开发教程8】手把手教你做平板电脑-Camera 驱动实验教程

    Camera 驱动实验教程 --疯壳·嵌入式平板开发 第一节 电路原理图介绍 参考文档 3128_sdk_a02_20170325.pdf 中第 17 页. 第二节 Camera 驱动框架及实现 图1 ...

  5. 【疯壳·嵌入式平板开发教程1】手把手教你做平板电脑-Linux 引导过程

    Linux 引导过程 --疯壳·嵌入式平板开发 Linux 内核与 Android 系统 linux 内核有什么区别?    什么是引导装载程序?   什么是 Zygote?    什么是 init. ...

  6. 【疯壳·平板教程1】手把手教你做平板电脑-Linux 引导过程

    Linux 引导过程 --疯壳·嵌入式平板开发 Linux 内核与 Android 系统 linux 内核有什么区别?    什么是引导装载程序?   什么是 Zygote?    什么是 init. ...

  7. 手把手教你做产品经理,视频课教程已经发布,欢迎观看

    手把手教你做产品经理,视频课教程已经发布,欢迎观看 http://edu.51cto.com/course/course_id-5062.html 转载于:https://blog.51cto.com ...

  8. Blender图解教程:手把手教你做一个马里奥金币 之 图片转法线贴图法(附模型下载)

    <Blender图解教程:手把手教你做一个马里奥金币 之 比较传统的方法>介绍了一种用Blender制作法线贴图的流程,本文介绍一种更加省事的方法. 步骤 效果图 概要 步骤 1. 建模 ...

  9. Blender图解教程:手把手教你做马里奥问号箱 二 强迫症修复版(附模型下载)

    看完 <Blender图解教程:手把手教你做马里奥问号箱>有强迫症同学反应对最后的结果不能忍.那么老王教大家修复一下.初学的同学可以通过这个例子进一步理解一下什么是UV. 修复前 如果你没 ...

最新文章

  1. 一场实验室意外爆炸事故,解决了58年量子难题,让科学家意外发现“核电共振”...
  2. ifamre 大小随页面变_SEO优化中如何让你的页面访问速度更快
  3. 批处理脚本:判断进程是否存在
  4. Folder and jar
  5. 来字节一月了,四个字:翻天覆地
  6. Java中常见的几种异常
  7. 文本文件和二进制文件的判别
  8. J2EE架构的优点和缺点有哪些
  9. 幅值与峰峰值的计算_峰峰值,峰值,平均值,有效值的关系
  10. python脚本 文件夹内文件名转为拼音名
  11. php后台权限授权管理系统的思路
  12. Python爬取微博短视频
  13. pythoon_interview_redit
  14. ReadMe 好看指南
  15. swift版 关于微信支付的那点事
  16. redis哨兵模式出现connected_slaves:0解决办法
  17. PHP合成推广微信推广海报 PHP合成图片 PHP在图片上添加文字 PHP制作图片
  18. 题材丰富 医药板块初露峥嵘
  19. HTML实训实训心得
  20. Java基础 DAY14

热门文章

  1. 民法典假房产证过户有效吗
  2. winXP/win7/win10系统关闭445端口方法全攻略
  3. ffmpeg——压缩mav格式音频
  4. 宝宝小暑吃什么,祛湿健脾,温补阳气
  5. arrive at/agree with/account for等动词词组
  6. 路由器与路由表 、ip数据包头的含义
  7. 第30节 程序中的三国天下
  8. 费曼 计算机科学 讲义,《费曼物理讲义》3 物理学与其他科学的关系
  9. 日记侠:微信引流第一步你做对了吗?
  10. 抖音跳转到微信引流的方法,私信页面如何添加微信