首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Linux驱动开发-编写FT5X06触摸屏驱动

前言 这篇文章介绍在Linux下如何编写FT5X06系列芯片驱动,完成触摸屏驱动开发, FT5X06是一个系列,当前使用的具体型号是FT5206,它是一个电容屏的触摸芯片,内置了8位的单片机(8051...所说起触摸屏大家都不会陌生,现在手机、手表、家电、很多地方都支持触摸了。最开始的触摸屏都是电阻屏,在诺基亚时代的时候,使用的触摸屏都是电阻屏,后来Android兴起的时候,手机都向电容屏发展了。...现在电容屏就很方便了,只需要手指去触摸屏即可完成操作,比电阻屏方便很多,还支持多点触控,当初Android手机刚兴起的时候,大街小巷的体验店,广告都是切水果游戏,切水果这个游戏就充分体验了多点触摸的效果...当前文章介绍的FT5206就是一颗电容屏的驱动芯片,最高支持2点触控,可以通过获取两个坐标点,这个系列的芯片最高支持10点触控。...编写触摸屏驱动 Linux下编写标准的触摸屏驱动需要使用到输入子系统,当前文章的重点是读取触摸屏的坐标,所以示例代码里不会加输入子系统的代码,只是在驱动层完成触摸屏笔中断响应,触摸屏的坐标点获取并打印。

2.4K20

18.Llinux-触摸屏驱动(详解)

input_handler_list链表中 搜索input_register_handler注册函数,就可以看到都是事件处理层里的函数: 所以最终如下图所示: 右边的驱动事件处理,内核是已经写好了的,所以我们的触摸屏只需要写具体的驱动设备.../errno.h> #include #include #include #include <linux..., 不编进内核和模块 然后make uImage 编译内核 将新的触摸屏驱动模块放入nfs文件系统目录中 7.2然后烧写内核,装载触摸屏驱动模块 如下图, 通过 ls -l /dev/event* 命令可以看到我们的触摸屏驱动的设备为...、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。...校验界面 运行测试如下图所示,能随意画图: 最终,触摸屏驱动测试成功

3.3K91

01_Input子系统视频介绍

资料下载 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接口的触摸屏驱动分析与实践

88330

【i.MX6ULL】驱动开发12——电容触摸驱动实践(上)

1 触摸介绍 LCD的触摸功能,本质就是显示屏上再叠加一层透明的触摸屏,实现触摸的方式与LCD进行交互。 触摸屏分为电阻触摸屏电容触摸屏。...电容技术触摸屏CTP(Capacity Touch Panel)是利用人体的电流感应进行工作的。...电容屏是一块四层复合玻璃屏,电容触摸屏就是支持多点触摸的人机交互方式,普通电阻式触摸屏只能进行单一点的触控。...1.1 硬件原理图 本篇使用的是野火的7寸电容触摸屏,分辨率和屏幕一样,800x480。触摸驱动芯片我GT911,是IIC接口的芯片。...: 3 使用Linux内核自带的驱动(未测试) 对于触摸屏驱动,NXP已经编写好了触摸驱动,加以修改可以在自己的板子上使用。

91020

android 电容屏(四):驱动调试之驱动程序分析篇 -- FocalTech

本人用的触摸屏IC是FocalTech公司的ft5306,是一款i2c的电容屏多点触控芯片。对于它的整体驱动官方已经给了,我们就触摸屏和按键部分的代码做相关说明。说明其中应该注意的地方。...三、触摸屏驱动流程 i2c中加入平台初始化代码 static struct ft5x0x_platform_data ft5x0x_platform_i2c_data = { .x_max...y_max=960, .irq= SABRESD_CHARGE_FLT_1_B, //中断引脚 .reset=SABRESD_DISP0_RST_B, //复位引脚 }; 触摸屏驱动初始化...从android input的流程分析我们知道,驱动编译完成以后,要使触摸屏工作,还需要三个文件:触摸屏配置文件 (idc文件,用来配置触摸屏的一些属性)、keylayout文件(kl文件,安卓层面的按键映射文件...,可以用这个命令将发送的事件打印出来,看驱动写的是否正确。

1.7K20

电容触摸屏GT911、GT928、GT9147的使用

可是他们的寄存器和IIC通讯时序是相同的,也就是说驱动程序是兼容的。 与主机的接口共有6PIN,分别为:VDD、GND、SCL、SDA、INT、RESET。...INT是GT9xx的触摸信号输出引脚,在正常工作时,主机端要设置为悬浮输入,即不上下拉(GT9xx的驱动能力有限,如果外部上下拉,GT9xx可能驱动不了)。...0:1); //发数据 } CT_IIC_Stop();//产生一个停止条件 } //初始化GT9147触摸屏 //返回值:0,初始化成功;1,初始化失败 u8 GT9147...GPIO_MODE_OUTPUT_PP; //推挽输出 HAL_GPIO_Init(GPIOI,&GPIO_Initure); //初始化 CT_IIC_Init(); //初始化电容屏的...return 1; } const u16 GT9147_TPX_TBL[5]={GT_TP1_REG,GT_TP2_REG,GT_TP3_REG,GT_TP4_REG,GT_TP5_REG}; //扫描触摸屏

3.4K20

【i.MX6ULL】驱动开发13——电容触摸驱动实践(下)

上篇文章介绍了电容触摸驱动的编写,包括设备树的修改和驱动程序(IIC驱动+中断+input子系统),并通过将触摸坐标值实时打印出来的方式,对触摸功能进行测试。...1 tslib的使用 Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。...中,对于输入设备,例如按键、 鼠标、 键盘、 触摸屏等,为了更加方便统一的管理, Linux内核为此专门做了一个input子系统的框架来处理输入事件。...如果要使用触摸屏的inpu件功能,就需要注册EV_KEY事件, 3.2.2 按键值类型 evbit、keybit、relbit 等等都是存放不同事件对应的值,Linux 内核定义了很多按键值: #define...方法如下: 将自己写的触摸屏驱动文件拷贝到Linux内核的drivers/input/touchscreen/目录下: cp gt911.c ../..

1.2K30

基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得

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。

6.9K70

基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得(二)-设备树刷厂商给的触摸屏固件

之前调试触摸屏的文章如下: 基于瑞芯微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 = ; 这样这些数组在上电时就会被写入到触摸屏里去

3.2K30

嵌入式输入系统应用编程

常见的输入设备有键盘、鼠标、遥控杆、书写板、触摸屏等等,用户通过这些输入设备与 Linux 系统进行数据交换。 什么是输入系统? 输入设备种类繁多,能否统一它们的接口?...既在驱动层面统一,也在应用程序层面统一?可以的。 Linux 系统为了统一管理这些输入设备,实现了一套能兼容所有输入设备的框架:输入系统。...有这 几类事件(参考 Linux 内核头文件): ? ② code:表示该类事件下的哪一个事件 比如对于 EV_KEY(按键)类事件,它表示键盘。...ABS_MT_SLOT、ABS_MT_TOUCH_MAJOR、ABS_MT_WIDTH_MAJOR、ABS_MT_POSITION_X、ABS_MT_POSITION_Y 这些绝对位置事件(它们的含义在后面讲解电容屏时再细讲...表示电容屏上报了 2 次完整的数据。

1.3K30

(43)STM32——触摸屏实验笔记

分类 表面电容式         表面电容触摸屏技术是利用 ITO(铟锡氧化物,是一种透明的导电材料)导电膜,通过电场感应方式感测屏幕表面的触摸行为进行。...但是表面电容触摸屏有一些局限性,它只能识别一个手指或者一次触摸。 投射式         投射电容触摸屏是传感器利用触摸屏电极发射出静电场线。...目前智能手机/平板电脑等的触摸屏,都是采用交互电容技术。 区别 电阻屏在触摸时需要轻触按压,而电容屏只需要轻微的手指触碰就能激活。...电阻屏在阳光下可视性稍差,电容屏则非常好,在阳光下可视性强。 电容触摸屏对工作环境的要求是比较高的,在潮湿、多尘、高低温环境下面,都是不合适使用电容屏的。  ...因此,我们可以通过这 4 个寄存器的值,来判断驱动 IC 的型号,从而判断是 OTT2001A 还是 GT9147,以便执行不同的初始化。

61110
领券