【疯壳·嵌入式平板开发教程5】手把手教你做平板电脑-触摸屏驱动实验教程
触摸屏驱动实验教程
——疯壳·嵌入式平板开发
第一节 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()中的两个地方 --- 自己做实验了
【疯壳·嵌入式平板开发教程5】手把手教你做平板电脑-触摸屏驱动实验教程相关推荐
- 【嵌入式开发教程6】手把手教你做平板电脑-触摸屏驱动实验教程
触摸屏驱动实验教程 --疯壳·嵌入式平板开发 第一节 input 输入子系统简单介绍 --- rockchip_gslX680_rk3168.c 触摸屏驱动注册到 input 子系统中后要遵循的框架结 ...
- 手把手教你做产品经理,视频课教程已经发布,欢迎观看
手把手教你做产品经理,视频课教程已经发布,欢迎观看 http://edu.51cto.com/course/course_id-5062.html 转载于:https://blog.51cto.com ...
- Blender图解教程:手把手教你做一个马里奥金币 之 图片转法线贴图法(附模型下载)
<Blender图解教程:手把手教你做一个马里奥金币 之 比较传统的方法>介绍了一种用Blender制作法线贴图的流程,本文介绍一种更加省事的方法. 步骤 效果图 概要 步骤 1. 建模 ...
- Blender图解教程:手把手教你做马里奥问号箱 二 强迫症修复版(附模型下载)
看完 <Blender图解教程:手把手教你做马里奥问号箱>有强迫症同学反应对最后的结果不能忍.那么老王教大家修复一下.初学的同学可以通过这个例子进一步理解一下什么是UV. 修复前 如果你没 ...
- 【疯壳·嵌入式平板开发教程1】手把手教你做平板电脑-Linux 引导过程
Linux 引导过程 --疯壳·嵌入式平板开发 Linux 内核与 Android 系统 linux 内核有什么区别? 什么是引导装载程序? 什么是 Zygote? 什么是 init. ...
- 【嵌入式开发教程7】手把手教你做平板电脑-音频驱动实验教程
音频驱动实验教程 --疯壳·嵌入式平板开发 图1 如上图是音频模块 codec 和 cpu 连接框图,主要由三部分组成: I2C 总线 - cpu 通过它实现对 Code ...
- 【嵌入式开发教程9】手把手教你做平板电脑-WIFI 驱动实验教程
WIFI 驱动实验教程 --疯壳·嵌入式平板开发 第一节 电路原理图介绍 下图来源于文档 3128_sdk_a02_20170325.pdf 中第 16 页. CMD 信号(用于传送命令和反应): ...
- 【嵌入式开发教程8】手把手教你做平板电脑-Camera 驱动实验教程
Camera 驱动实验教程 --疯壳·嵌入式平板开发 第一节 电路原理图介绍 参考文档 3128_sdk_a02_20170325.pdf 中第 17 页. 第二节 Camera 驱动框架及实现 图1 ...
- 【疯壳·平板教程1】手把手教你做平板电脑-Linux 引导过程
Linux 引导过程 --疯壳·嵌入式平板开发 Linux 内核与 Android 系统 linux 内核有什么区别? 什么是引导装载程序? 什么是 Zygote? 什么是 init. ...
最新文章
- C# 加载 SQLite DLL问题
- Java基础类库四则运算_00JAVA语法基础_四则运算 01
- Xamarin效果第十二篇之控制祖传PLC
- sklearn中常用的数据预处理方法
- sd卡有多个android文件夹,android - 如何adb拉出SD卡中存在的文件夹的所有文件
- 怎样找到native speaker的感觉
- mysql涉及表 规范_MySql数据库表设计规范
- 树算法系列之三:GBDT
- Ubuntu安装配置tftp服务器
- python如何筛选数据_Python如何用filter函数筛选数据
- java写关于温度的算法_摄氏温度和华氏温度的转换之java算法
- 阿里云短信校验注册完整版
- miui11可用的位置模拟器_miui11支持机型汇总_miui11支持哪些机型_软吧下载
- 用C语言编写一个电话簿管理系统
- mysql 去掉前面的0_去掉前面的0的sql语句(前导零,零前缀)
- SQLiteOpenHelper 崩溃Couldnt read row 0, col -1 from CursorWindow.
- 市场调研报告-全球与中国熔接器市场现状及未来发展趋势
- Java实现TCP的长短链接
- java学习思维导图(详细)
- java时间戳 秒_Java:如何为时间戳添加秒?
热门文章
- cvs配电保护断路器_CVS100F断路器|施耐德CVS100F100A断路器
- Linux技术(1)--CentOS 6.5关闭防火墙步骤
- re模块 正则表达式
- 文件服务器定时开关机,服务器设置定时开关机
- VScode与VSstdio差别该如何选择C语言IDE(集成开发环境)
- 《MATLAB智能算法超级学习手册》一一1.3 符号变量的应用
- hyper v设置虚拟机动态内存,内存最大最小值
- jmeter+jenkins+ant接口自动化
- 【iptables】bluetooth自组网
- 华为笔记本软件商店_华为要消灭流氓软件?干净的电脑应用商店来了!