早在诺基亚手机还比较流行的时候,那时候触摸屏用的还不多。但是随着触摸屏手机、即智能手机的流行,触摸屏基本成了手机的标配。所以,今天可以看看触摸屏驱动在linux上是如何进行的。...1、驱动目录 drivers/input 2、看看这个目录的Makefile如何设计 obj-$(CONFIG_INPUT) += input-core.o input-core-y := input.o...查看是否有中断函数被注册 ret = request_irq(ts.irq_tc, stylus_irq, 0, "s3c2410_ts_pen", ts.input); 8、最后 很明显,触摸屏驱动本质上还是由
目标芯片: XPT2046---标准SPI接口时序 二、XPT2046芯片介绍 2.1 功能 XPT2046是一颗12位的ADC芯片,可以当做普通的ADC芯片使用,但是一般都是用在电阻触摸屏上,方便定位触摸屏坐标...图3:采用的电阻触摸屏的LCD屏(上面盖的哪一层薄膜就是触摸用的) 2.2 特性 1. 工作电压范围为 2.2V~5.25V 2. 支持 1.5V~5.25V 的数字 I/O 口 3....选择VBAT、 Temp和AUX时可以配置为单端模式;作为触摸屏应用时,可以配置为差分模式,这可有效消除由于驱动开关的寄生电阻及外部的干扰带来的测量误差,提高转换准确度。...但这种模式的缺点是精度直接受参考电压源的精度限制,同时由于内部驱动开关的导通电阻存在,导通电阻与触摸屏电阻的分压作用,也会带来测量误差。...差分模式的优点是: +REF 和-REF 的输入分别直接接到 YP、 YN 上,可消除由于驱动开关的导通电阻引入的坐标测量误差。
前言 这篇文章介绍在Linux下如何编写FT5X06系列芯片驱动,完成触摸屏的驱动开发, FT5X06是一个系列,当前使用的具体型号是FT5206,它是一个电容屏的触摸芯片,内置了8位的单片机(8051...所说起触摸屏大家都不会陌生,现在手机、手表、家电、很多地方都支持触摸了。最开始的触摸屏都是电阻屏,在诺基亚时代的时候,使用的触摸屏都是电阻屏,后来Android兴起的时候,手机都向电容屏发展了。...电阻屏需要自己去校准,电阻屏的手机上都有这个功能,发现触摸不灵敏之后,打开校准选项,根据屏幕上十字图标指引,按顺序点一下,完成坐标校准,电阻屏的屏幕还是软材质,必须要手指去戳才可以完成控制,而且只能支持单点触控...现在电容屏就很方便了,只需要手指去触摸屏即可完成操作,比电阻屏方便很多,还支持多点触控,当初Android手机刚兴起的时候,大街小巷的体验店,广告都是切水果游戏,切水果这个游戏就充分体验了多点触摸的效果...编写触摸屏驱动 Linux下编写标准的触摸屏驱动需要使用到输入子系统,当前文章的重点是读取触摸屏的坐标,所以示例代码里不会加输入子系统的代码,只是在驱动层完成触摸屏笔中断响应,触摸屏的坐标点获取并打印。
触摸屏子系统是通过input子系统来实现,对应设备节点 /dev/input/eventn,熟悉套路后重点放在硬件程序的编写 一、内核自带触摸屏驱动S3c2410_ts的简单分析 S3c2410_ts.c...(drivers\input\touchscreen) 内核自带三星的触摸屏驱动 (1)入口函数: /*注册一个平台driver*/ static int __init s3c2410ts_init...; (4)touch_timer_fire 当事件发生的时候,上报事件 /*上报事件*/ input_report_abs--》input_event 二、参考S3c2410_ts从零写S3C2440触摸屏驱动...触摸屏使用流程 a.按下,产生中断 b.在中断处理程序中,启动ADC转换坐标。...//插件位置 export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0 //显示屏 到此触摸屏驱动移植成功
触摸屏作为嵌入式产品中常用的交互设备,具有交互直观,编程简易等特点,本系列文章将以多种角度分析如何选择合适的触摸屏方案及常见的故障解决方法,敬请关注连载文章。下文主题为:电阻屏的原理。...1.1 基本原理 首先触摸屏属于输入设备,对于高效的系统而言,一个输入设备必须满足以下几点:1, 中断触发机制,若一个设备不能引起中断,那么系统只能隔一段时间查询外设是否被触发,倘若两次查询间隔内状态发生改变...2, 能输出或被控制输出不同的数据,由算法或者硬件输出,这点在电阻屏中尤其重要。1.2 四线电阻屏 四线电阻屏的硬件构成如图1.1所示,对外接口为X轴的正负极x+、x-,Y轴的正负极y+、y-。...1.3 五线电阻屏 五线电阻屏的硬件构成如所示,x、y轴的电极分布下层贴近玻璃基板,分布施加在四个电极点上,名为UR、UL、LR、LL,上层为活动电极层,负责采集点触点电压。...同理,对于其他平台,以此方法即可判断能否支持四线电阻屏、五线电阻屏。图片图1.4 i.MX6UL触摸模组信息
/errno.h> #include #include #include #include #include #include #include #include <linux/platform_device.h...,当然有platform驱动就会有platform设备了。...* 当platform驱动注册到系统中时,就会和platform设备去匹配。 * * 那问题来了? platform是如何匹配设备与驱动的?...很明显这就是platform驱动对应的platform的设备了。 * * 当设备与驱动的名称匹配了,就会调用s3c_ts_probe函数。
在目录下amp\a53_linux\drv\extdrv\touchpad\ft6236下可以看到ft6236.c的文件 1. init函数 static int __init ft_init(void...#define INT_GPIO_CHIP (2) #define INT_GPIO_OFFSET (5) 这些管脚可以在这里《Hi3556AV100 Demo 单板使用指南.pdf》中看到,分别得出触摸屏的中断和复位管脚...1.1 对触摸屏进行复位 static int ft_reset(hi_gpio_groupbit_info* pstRstInfo) { pstRstInfo->value = 1;...pstRstInfo); msleep(5); pstRstInfo->value = 1; hi_gpio_write_bit(pstRstInfo); return 0; } 对触摸屏进行复位...hi_i2c_read(0x0, buf, FT_MAX_BUFUSED_NUM); 在这里,使用了hi_i2c_read,在文件i2cdev.c中,注意i2c_board_info的一般是8位从地址; 一般来说,触摸屏有固件的
input_handler_list链表中 搜索input_register_handler注册函数,就可以看到都是事件处理层里的函数: 所以最终如下图所示: 右边的驱动事件处理,内核是已经写好了的,所以我们的触摸屏只需要写具体的驱动设备...adc","i2c"等,名字定义在clock.c中 clk_enable(struct clk *clk); //开启clk_get()到的模块时钟,就是使能CLKCON寄存器的某个模块的位 4.电阻式触摸屏介绍..., 不编进内核和模块 然后make uImage 编译内核 将新的触摸屏驱动模块放入nfs文件系统目录中 7.2然后烧写内核,装载触摸屏驱动模块 如下图, 通过 ls -l /dev/event* 命令可以看到我们的触摸屏驱动的设备为...、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。...校验界面 运行测试如下图所示,能随意画图: 最终,触摸屏驱动测试成功
触摸屏作为嵌入式产品中常用的交互设备,具有交互直观,编程简易等特点,本系列文章将以多种角度分析如何选择合适的触摸屏方案及常见的故障解决方法。本文主题为电阻屏的驱动组成以及多数触摸屏的异常分析。...1.1测试环境处理器:AM335x内核版本:Linux-3.2硬件条件:四线电阻屏、五线电阻屏1.2驱动组成部分触摸屏的处理流程离不开,响应中断上报事件,对于电容屏同样有效的。...所以对于触摸屏,只需仅仅把握中响应中断上报事件的流程,即可定位是软件还是硬件故障。以AM335x的电阻屏为例,涉及的驱动子系统列表如表1.1所示。...表1.1 电阻屏相关驱动1.3AM335x电阻屏驱动相关代码位置如表1.2所示。...代码清单1.2 ADC模块驱动路径:drivers/mfd/ti_tscadc.c最后就来介绍负责抽象整个触摸设备的触摸屏驱动文件,触摸驱动内封装了中断、ADC模组的寄存器操作、输入事件的上报工作。
资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...视频观看 百问网驱动大全 Input子系统视频介绍 参考资料: Linux 5.x内核文档 Documentation\input\input-programming.rst Documentation...\input\event-codes.rst Linux 4.x内核文档 Documentation\input\input-programming.txt Documentation\input...输入设备的种类 输入设备种类很多,有GPIO按键、鼠标、电阻触摸屏、电容触摸屏、USB键盘、遥控手柄等等。...\gpio_keys.c 使用 3.5 在QEMU上实现最简单的触摸屏驱动 3.6 I2C接口的触摸屏驱动分析与实践 3.5 在QEMU上实现最简单的触摸屏驱动 3.6 I2C接口的触摸屏驱动分析与实践
1.2、使用i2cdetect工具确定设备地址 由于我的触摸屏是连接在I2C5上,硬件原理图如下所示: 但是我还没有实现它的驱动,所以可以通过i2cdetect工具来确定设备的I2C地址是多少,ARM...如上图所示,这个5d就表示当前触摸屏的I2C地址,为什么是5d呢?你把触摸屏拔掉,再用这个命令查看是不是消失了就可以验证这个问题了。...2、GT911驱动移植 2.1、配置Linux内核支持gt9xx GT911在Linux内核中已经支持了,位于以下路径,如果没有的话就需要跟触摸屏厂商要驱动代码,如果要不到那么就拿着Datasheet自己干吧...2.2、查看GT911驱动代码中需要配置的设备树参数 驱动代码: kernel/drivers/input/touchscreen/gt9xx 接下来打开gt9xx.c,划到最下面,我们可以看到:...max-y 触摸Y方向的分辨率,由于我的触摸屏是1024*600,项目上需要竖屏触摸,所以X方向的分辨率配置为1024。
视频观看 百问网驱动大全 I2C接口触摸屏驱动分析 参考资料: Linux 5.x内核 Documentation\devicetree\bindings\input\touchscreen\goodix.txt...-14x14.dts STM32MP157:Linux-5.4/arch/arm/boot/dts/stm32mp15xx-100ask.dtsi 1....驱动程序框架 2....属性: 必备,根据这个属性找到驱动程序:compatible = "xxxx"; 必备,I2C设备地址:reg = ; 可选: 中断 复位引脚 2.2 100ASK_IMX6ULL...驱动程序分析 3.1 分配/设置/注册input_dev IMX6ULL Linux 4.x gtp_probe ret = gtp_request_input_dev(ts); ts->input_dev
之前调试触摸屏的文章如下: 基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得 由于之前调触摸屏一直都对不上点,然后厂商又给了我新的驱动代码。...但是还是没能解决问题,所以我初步怀疑是固件问题,因为驱动基本上只要写对了是不会有问题的,因此,我让厂商帮我调了一个适配触摸屏的固件,最后这个问题就解决了。...厂商给过来的固件是一个.cfg文件,使用记事本的打开方式打开这个文件,发现是一个16进制的数组: 如果是老版本不支持设备树的驱动,则直接将这个文件复制到驱动目录的路径下,然后将gt9xx_cfg.h打开...然而现在驱动支持设备树了以后,Linux内核设备树里配置触摸屏参数的写法是这样的: //TP:GT911 &i2c5 { status = "okay"; goodix_ts@5d { compatible...00 00 00 00 34 01 ]; }; }; 注意,这里需要注意,如果要将数组烧到TP板子里的话,需要开启: gtp_send_cfg = ; 这样这些数组在上电时就会被写入到触摸屏里去
1.无操作系统时的硬件、驱动、应用软件要满足高内聚、低耦合。 2.有操作系统时的驱动, 3.LINUX驱动与整个软硬件的关系
1 触摸介绍 LCD的触摸功能,本质就是显示屏上再叠加一层透明的触摸屏,实现触摸的方式与LCD进行交互。 触摸屏分为电阻触摸屏和电容触摸屏。...电阻触摸屏是一种传感器,其结构是薄膜加上玻璃的结构,两结构相邻的一面上均涂有ITO(一种导电性和透明性很好的)涂层。...电容屏是一块四层复合玻璃屏,电容式触摸屏就是支持多点触摸的人机交互方式,普通电阻式触摸屏只能进行单一点的触控。...: 3 使用Linux内核自带的驱动(未测试) 对于触摸屏的驱动,NXP已经编写好了触摸驱动,加以修改可以在自己的板子上使用。...使用Linux内核自代的驱动,还需要进行内核配置。
包含核心板原理图、PCB、BOM、Linux内核所有驱动源码、文件系统等!...序号 项目 备注 1 原理图源文件 设计资料 2 PCB源文件 3 BOM-物料清单 生产资料 4 Gerber文件 5 坐标文件 6 Uboot源码 设计资料 7 内核源码-含所有驱动 8 文件系统...硬件接口与功能 产品名称 HD-RK1808-CORE 核心板 产品名称 HD-RK1808-CORE 核心板 操作系统 嵌入式 Linux / Ubuntu 加密 支持硬件加密,保护用户应用软件版权...可提供 4 线电阻式与电容触摸屏方案 音频接口 支持 USB 2 路 USB3.0 串口 最高 4 路(复用) CAN-Bus 扩展支持 以太网 1 路,千兆网 SD 卡接口 1 路 I2C 2 路(...可选7寸电阻屏或工业级电容屏显示套件: 开源资料如何获取?
编写按键驱动 使用杂项设备注册按键驱动,应用层使用read接口读取按键值。 编写驱动之前需要先找到按键的原理图,找到按键接到CPU那个IO上的。...2.1 按键驱动源代码 #include #include #include #include <linux...open=tiny4412_open, .read=tiny4412_read, .write=tiny4412_write, .release=tiny4412_release }; /* Linux...KER_DRI=/home/wbyq/work/linux-3.5/linux-3.5 all: make -C $(KER_DRI) M=`pwd` modules cp *.ko /home/wbyq.../work/rootfs/code -f make -C $(KER_DRI) M=`pwd` modules clean arm-linux-gcc app.c -o app cp app /home
Linux 网络设备驱动架构 驱动架构自上而下分为4层: 协议接口层 设备接口层 设备驱动功能层 网络设备与媒介层 协议接口层 协议接口层主要功能是给上层协议提供接收和发送的接口。...传递的数据被描述为套接字缓冲区,用struct sk_buff结构描述,该结构体定义位于include/linux/skbuff.h中,用于在Linux网络子系统中的各层之间传输数据,该结构在整个网络收发过程中贯穿始终...设备驱动功能层 类似于字符设备,struct net_device结构体也提供了一个操作函数集struct net_device_ops来描述对网卡的各种操作。...源码分析 笔者基于的是 S5PV210 的 DM9000 驱动,会大体上对 DM9000 的驱动源码进行分析, 分析源码位于DM9000 源码 platform 框架分析 DM9000 的驱动是基于 platform...return platform_driver_register(&dm9000_driver); } 该函数调用了 platform_driver_register 函数注册了一个平台总线驱动
在高速模式下,采用的是电流传输模式,这个时候上拉电阻需要从D+上断开。 usb主机检测到USB设备插入后,就要对设备进行枚举了。...四、 linux内核下USB相关的API函数与数据结构 前面介绍了USB相关一些基础概念与重要的数据结构,接下来就分析在linux内核中如何编写一个USB 驱动程序,编写与一个USB设备驱动程序的方法和其他总线驱动方式类似...(中断传输方式) 5.1 USB驱动注册框架代码 #include #include #include /*...[root@wbyq linux-3.5]# make menuconfig 由于内核自带了usb鼠标驱动,所以需要去除: Device Drivers ---> HID support...#include /* 本程序为USB鼠标驱动程序,要安装本驱动,需要先将内核自带的USB驱动程序卸载掉 */ //定义USB的IDTAB 24ae:2002 static
技术发展 编辑 电阻式多点触摸屏技术 不管是传统的四线电阻式触摸屏还是 TOUCHLENS结构,以上手机只能单点触摸,不能满足丰富 的触摸动作体验,火热的多点触摸技术促使电阻式 触摸屏的进一步发展...电阻式 电阻屏的全称是电阻式触摸屏,电阻屏是一种传感器,它将矩 ? 电阻式触摸屏结构 形区域中触摸点(X,Y)的物理位置转换为代表X坐标和Y坐标的电压。...主要类型 编辑 手机触摸屏分为两种:电阻屏和电容屏,目前流行的触摸屏多数都为lens屏,就是纯平电阻和镜面电容屏,诺基亚多数都为电阻屏的,电容屏的代表为iphone。...要是我得话,就是用adb控制了吧,目前最便宜得linux开发板就是荔枝派了吧 ? ?...没错就是这个小家伙.可以跑Linux.那么就可以安装adb ---- 肯定不是apt一下这么简单,得做很多移植工作,而且性能羸弱,做这种工作也不是做得太好.但是可以运行python解释器.只要有了这个解释器
领取专属 10元无门槛券
手把手带您无忧上云