首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

2.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    之前调试触摸屏文章如下: 基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得 由于之前调触摸屏一直都对不上点,然后厂商又给了我新驱动代码。...但是还是没能解决问题,所以我初步怀疑是固件问题,因为驱动基本上只要写对了是不会有问题,因此,我让厂商帮我调了一个适配触摸屏固件,最后这个问题就解决了。...厂商给过来固件是一个.cfg文件,使用记事本打开方式打开这个文件,发现是一个16进制数组: 如果是老版本不支持设备树驱动,则直接将这个文件复制到驱动目录路径下,然后将gt9xx_cfg.h打开...然而现在驱动支持设备树了以后,Linux内核设备树里配置触摸屏参数写法是这样: //TP:GT911 &i2c5 { status = "okay"; goodix_ts@5d { compatible...config[i]; } config[ts->gtp_cfg_len] = (~check_sum) + 1; } } } 通常来说,这个固件只要烧一次就行了,因此,在触摸屏量产时候

    3.6K30

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

    1.2、使用i2cdetect工具确定设备地址 由于我触摸屏是连接在I2C5上,硬件原理图如下所示: 但是我还没有实现它驱动,所以可以通过i2cdetect工具来确定设备I2C地址是多少,ARM...I2C设备; “UU”表示这个地址 I2C 设备已经有驱动在使用占用它了,那这个I2C 设备肯定是存在; 其他数值表示该地址对应 I2C 设备是存在,并且还没有驱动程序跟它匹配。...如上图所示,这个5d就表示当前触摸屏I2C地址,为什么是5d呢?你把触摸屏拔掉,再用这个命令查看是不是消失了就可以验证这个问题了。...2、GT911驱动移植 2.1、配置Linux内核支持gt9xx GT911在Linux内核中已经支持了,位于以下路径,如果没有的话就需要跟触摸屏厂商要驱动代码,如果要不到那么就拿着Datasheet自己干吧...max-y 触摸Y方向分辨率,由于我触摸屏是1024*600,项目上需要竖屏触摸,所以X方向分辨率配置为1024。

    8.1K70

    xmake v2.6.2 发布,新增 Linux 内核驱动模块构建支持

    内核驱动模块构建支持 分组构建和批量运行支持,可用于实现 Run all tests 功能 剩下主要是一些零散功能改进和 Bugs 修复,可以看下文末更新内容明细,一些比较大改动,下面也会逐一说明...新特性介绍 构建 Linux 内核驱动模块 Xmake 也许是首个提供 Linux 内核驱动开发 内置支持第三方构建工具了。...add_requires("linux-headers 5.9.x", {configs = {driver_modules = true}}) 交叉编译 我们也支持内核驱动模块交叉编译,比如在 Linux...同样,我们不用关心如何准备 linux-headers 去支持交叉编译,Xmake 依赖包管理会帮你准本好一切,拉取构建支持对应架构内核源码。...更新内容 新特性 #1902: 支持构建 linux 内核驱动模块 #1913: 通过 group 模式匹配,指定构建和运行一批目标程序 改进 #1872: 支持转义 set_configvar 中字符串值

    2.6K10

    DRV_03_编写最简单触摸屏驱动程序_基于QEMU

    视频观看 百问网驱动大全 List item 编写最简单触摸屏驱动程序_基于QEMU 参考资料: STM32MP157\source\A7\05_Input\03_touchscreen_qemu...* 深入学习内核及驱动 * 使用QEMU可以非常方便地调试内核、查看驱动程序执行过程 * 有助于深入研究内核及驱动 * 学习某些驱动时可以用QEMU模拟硬件,简化硬件操作,把精力放在驱动程序框架本身...**注意**: * 使用QEMU不是必须 * QEMU只是提供另一个角度学习方法,比如: * LCD驱动:使用QEMU可以时,可以简化硬件操作 * 中断子系统:可以跟踪调用过程 * 你可以只看QEMU...准备工作 在2021.03.27,我们给QEMU增加了新功能:模拟触摸屏。 如果你是在这个时间之前下载了百问网QEMU映像,那么需要重新下载。...编写驱动程序 request_irq 在中断处理函数里 上报按下、松开事件 如果触摸屏被按下,启动定时器 如果触摸屏被松开,取消定时器 在定时器函数里 如果触摸屏还是被按下状态

    1.3K30

    linux驱动ioctl函数,Linux中与驱动相关ioctl函数

    ioctl是设备驱动程序中对设备I/O通道进行管理函数,所谓对I/O通道进行管理,就是对设备一些特性进行控制,例如,在串口线上收发数据通过read/write操作,而串口波特率、校验位、停止位通过...ioctl函数是文件结构中一个属性分量,就是说如果你驱动程序提供了对ioctl支持,用户就可以在用户程序中使用ioctl函数控制设备I/O通道。...例如,我们可以在驱动程序中实现write时候检查一下是否有特殊约定数据流通过,如果有的话,那么后面就跟着控制命令(一般在socket编程中常常这样做)。...要记住,用户程序所作只是通过命令码告诉驱动程序它想做什么,至于怎么解释这些命令和怎么实现这些命令,这都是驱动程序要做事情。...调用函数ioctl (vd->fd, VIDIOCGCAP, &(vd->videocap))成功后可读取vd->capability各分量 video_capability是Video4linux支持数据结构

    2.3K180

    湖南长沙:关于支持申请使用腾讯“湘智云”服务有关事项通知

    (转自:湖南湘江新区>通知公告) 日前,湖南湘江新区推出针对中小企业“湘智云”补贴服务项目,该项目由腾讯云长沙公司为申请主体提供腾讯人工智能及公有云产品服务,新区管委会按年限给予一定补贴支持。...相关政策文件如下(附件请前往原链接地址下载): 关于支持申请使用腾讯“湘智云”服务有关事项通知...hnxjxq.hunan.gov.cn 时间:2020年03月06日 各园区管委会、区市人民政府,新区各部门(单位)、国有公司,有关高校、科研机构、企业:     按照省市推动人工智能产业发展、深入实施创新驱动发展总体部署要求...,经长沙市政府同意,湖南湘江新区管委会与腾讯云计算(长沙)公司(以下简称腾讯云长沙公司)共同打造“湘智云”服务项目,该项目由腾讯云长沙公司为申请主体提供腾讯人工智能及公有云产品服务,新区管委会按年限给予一定补贴支持...(三)复审通过后,腾讯云长沙公司将按照审核情况开通相应云服务资源并对申请主体进行云培训。

    1.5K30

    Linux系统驱动之最简单LCD驱动_基于QEMU

    资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...视频观看 百问网驱动大全 百问网技术交流群,百万嵌入式工程师聚集地: https://www.100ask.net/page/2248041 最简单LCD驱动_基于QEMU 本节视频对应源码在GIT...为什么要用QEMU Linux驱动 = 驱动框架 + 硬件操作。 如果硬件操作足够简单,我们就可以把精力放在驱动程序框架上,这才是Linux核心。...使用QEMU,虚拟出一款简单LCD控制器,可以简化硬件操作,让我们把精力放在驱动框架上。 2....暂时未支持其他参数。 3. 修改LCD驱动程序添加硬件操作 4. 下载、安装、运行QEMU 参考:http://wiki.100ask.org/Qemu 5.

    2.9K10

    Linux驱动开发IIC设备驱动投机取巧

    前言 LinuxIIC驱动想必大家都耳熟能详,网上也有很多相关教程。 网上教程总结,比如: 方法问题描述Linux 3.X.X版本之后,设备树+驱动此方法是比较符合linux驱动写法。...他将会操作多个文件 上面的做法都有些困难及弊端存在,经过摸索了一遍LinuxI2C驱动框架,我发现可以很精简写一个I2C设备设备驱动。...而且是放在内核态中,这样处理一下GPIO或者中断什么都很方便。 投机取巧I2C驱动 I2C设备驱动说明 投机取巧I2C驱动是参考I2C总线驱动代码实现。...投机取巧I2C驱动不需要设备树,这也让一些不熟悉设备树小伙伴能编写一个设备驱动。 投机取巧I2C驱动精简,方便理解。...分析I2C总线驱动说明 I2C总线驱动代码在linux源码中--i2c-dev.c中。 在代码中可以看到他提供一套文件操作接口,open,read,write,close接口。

    1.8K20

    Linux 设备和驱动相遇

    一个开发板 上一节最后我们讲到设备树三大作用,其最后一个作用也是最重要作用:设备信息集合。这一节结合设备信息集合详细讲解来认识一下设备和驱动是如何绑定。...我们看到一个开发板有很多设备,这些设备是如何一层一层展开呢?设备和驱动又是如何绑定呢?我们带着这些疑问进入本节主题。...各级设备展开 内核启动时候是一层一层展开地去寻找设备,设备树之所以叫设备树也是因为设备在内核中结构就像树一样,从根部一层一层向外展开,为了更形象理解来看一张图: ?...第一节中讲了总线、设备和驱动模型原理,即任何驱动都是通过对应总线和设备发生联系,故虽然 soc 内部没有具体总线,但是内核通过 platform 这条虚拟总线,把控制器一个一个找到,一样遵循了内核高内聚...这样就完成了 spi 设备注册。 各级设备展开 学到这里相信应该了解设备硬件信息是从设备树里获取,如寄存器地址、中断号、时钟等等。

    2.5K40

    Linux驱动实践:如何编写【 GPIO 】设备驱动程序?

    目录 示例程序目标 编写驱动程序 编写应用程序 卸载驱动模块 在前几篇文章中,我们一块讨论了:在 Linux 系统中,编写字符设备驱动程序基本框架,主要是从代码流程和 API 函数这两方面触发。...编写驱动程序 以下所有操作工作目录,都是与上一篇文章相同,即:~/tmp/linux-4.15/drivers/。...创建驱动目录和驱动程序 $ cd linux-4.15/drivers/ $ mkdir mygpio_driver $ cd mygpio_driver $ touch mygpio.c mygpio.c...文件内容如下(不需要手敲,文末有代码下载链接): #include #include #include <linux/ctype.h...从代码中可以看出:驱动程序使用 alloc_chrdev_region 函数,来动态注册设备号,并且利用了 Linux 应用层中 udev 服务,自动在 /dev 目录下创建了设备节点。

    5.2K30

    Linux驱动开发-编写超声波测距模块驱动

    示例代码 下面是超声波测距模块驱动代码,将超声波模块输出脚接在开发板支持中断IO口上,配置为上升沿触发,当超声波输出脚检测到高电平就进去中断服务函数,在中断服务函数里调度工作队列,最终在工作函数里完成高电平时间长度获取...,计算测量距离,直接在驱动代码里打印出来。...下面是测量结果: 2.1 驱动代码 #include #include #include #include..._linux_csb_init); /*驱动入口--安装驱动时候执行*/ module_exit(tiny4412_linux_csb_cleanup); /*驱动出口--卸载驱动时候执行*/...MODULE_LICENSE("GPL"); /*设置模块许可证--GPL*/ 2.2 Makefile KER_DRI=/home/wbyq/work/linux-3.5/linux-3.5

    1.8K30

    01_Input子系统视频介绍

    视频观看 百问网驱动大全 Input子系统视频介绍 参考资料: Linux 5.x内核文档 Documentation\input\input-programming.rst Documentation...输入设备种类 输入设备种类很多,有GPIO按键、鼠标、电阻触摸屏、电容触摸屏、USB键盘、遥控手柄等等。...输入设备驱动程序框架 有没有一个驱动程序,能支持那么多设备?没有! 有没有一套驱动程序,容易扩展,最终能支持那么多设备?有! 这就是输入子系统驱动程序,框架如下: 3....讲什么内容 3.1 框架 3.2 evdev.c剖析 3.3 input_dev驱动编写 3.4 GPIO按键驱动分析与使用 分析内核自带GPIO按键驱动:drivers\input\keyboard...\gpio_keys.c 使用 3.5 在QEMU上实现最简单触摸屏驱动 3.6 I2C接口触摸屏驱动分析与实践 3.5 在QEMU上实现最简单触摸屏驱动 3.6 I2C接口触摸屏驱动分析与实践

    90730

    Linux 总线、设备、驱动模型探究

    设备驱动模型需求 总线、设备和驱动模型,如果把它们之间关系比喻成生活中例子是比较容易理解。...没错,Linux 内核里就是运用了这种设计思想去对设备和驱动进行适配隔离,只不过在内核里我们不叫做适配层,而取名为总线,意为通过这个总线去把驱动和对应设备绑定一起,如图: ?...基于这种设计思想,Linux 把设备驱动分为了总线、设备和驱动三个实体,这三个实体在内核里职责分别如下: ?...最底层是不同板子板级文件代码,中间层是内核总线,最上层是对应驱动,现在描述板级代码已经和驱动解耦了,这也是 Linux 设备驱动模型最早实现机制,但随着时代发展,就像是人类贪婪促进了社会进步一样...完美的 Linux 怎么会允许这样事情存在,于是乎,设备树(DTS)就登向了历史舞台,下一篇内容将探讨设备树实现原理和用法。 【部分内容整理于宋宝华老师课程】

    6.5K41

    谈谈Linux内核驱动coding style

    最近在向Linux内核提交一些驱动程序,在提交过程中,发现自己代码离Linux内核coding style要求还是差很多。...如果去看drivers/staging下代码,就会发现很多驱动程序都没有严格遵守内核coding style,而且在很多驱动程序TODO文件里,都会把"checkpatch.pl fixes"作为自己目标之一...在Linux内核coding style里,switch和case要求有相同缩进。本例代码很少,错误也只有这一个,手动修改很方便。如果类似的缩紧错误很多怎么办?...比如,Linux内核coding style要求,行尾不能有空格(包括Tab),去除这些空格就可以借助sed。 我自己习惯很差,经常在代码行尾留下一些空格。...style for multi-line * comments in the Linux kernel source code. * Please use it consistently. * * Description

    1.8K10
    领券