触摸屏控制器驱动程序设计

合集下载

基于Linux的触摸屏设备驱动的设计

基于Linux的触摸屏设备驱动的设计

触摸屏技术在我国的应用虽然只有 l O多年的
时间,但是它已经成了继键盘、鼠标、手写板、语音
输入后最为普通百姓所易接受的计 算柳输 入 . 方式。
本文 介 绍 了 以 2 T 内核 的 ¥ C 4 0 0 3 24 A
处 理 器 为 核 心 的 触 集成 了触摸屏控制器,它的
u sg e n h a al n in dit e dti; wat q e e h a t ; i u u_ ed wq
_ _
s i l k t o k pn o lc ;
_
换进行 x和 Y 位置转换,A 变换完成后 ,分别 D
) sd v t e; _ .
读取 x和 Y位置坐标,然后等待触摸笔抬起。当
像,并烧写到 S C 4 0 3 2 1A处理器 中测试该驱动程序。 关 键
, 1系统设计
词:S C 4 0 触摸屏 驱动程序 3 24A
2硬件设计 如图 l ,在使用触摸屏时,S C 4O 处理器 3 2 lA 的引脚 X 、X P M、Y P和 Y 可以直接和触摸屏 M 相连。A C和触摸屏共用一个 A 转换器,对八 D 路模拟输入信号进行 A D变换,通过设置 A C控 D
N D 、I T T ,IT A C表示 AD转换器 ITA C N C N D / 已经完成转换,IT T N C表示触摸笔被按下。
并将之转换为 1 位的二进制数据。 0
图 l 驱动设计线路图
3软件设计 31增添触摸屏平台设备 .
触 摸屏 设备作为一个 平台设备,需 要加入 到 lu i x内核中才能被使用。下面是触摸屏设备的定义 n
触摸 笔抬起 后 ,再次触 发触 摸屏 中 断,将 X 和 Y

基于ARM的触摸屏驱动设计

基于ARM的触摸屏驱动设计
� � 际硬 件的 设备 特有 操作 上, 是设 备驱 动程 序的 任务 2 .
采 用外 部晶 体管 接 触摸 屏, 中 断到 来 以后 中 断服 务 程序 立 即屏 蔽 掉中 断 , 使中 断 不能 再 次进 入.由于 触 摸 屏在 一 段时 间 内被 连 续按 下, 所以 还 需要 设 置一 个
触摸屏
� 触摸 屏根 据所 用介 质及 工作 原理 可分为 表面 声波 式 电容 式 红 外线 式和 电阻 式四 种.
� � � 1 表面 声波 触 摸屏 : 其边 角有 轴 声 波发 射器 和接 收 器,表 面有 � � 屏 幕被 触摸 时,声 波从 触摸 点 开始 的部 分被 吸 收,控 制器 根 据到 达
和 红外 接收 管,一 一对 应形 成 横竖 交叉 的 红外 线 矩阵 . 当 有触 摸 时,手 指或 其 他物 体 就会 挡 住经 过 该处 的 横
4 电 阻式 触 摸屏 : 一 个多 层 的复 合 膜,由 一层 玻 璃或 有 机玻 璃 作为 基 层,表 面 涂 有 一层 透 明 的导 电 层,
上 面再 盖 有一 层 塑料 层. 它的 内 表面 也 涂有 一 层透 明 的导 电 层,在 两层 导 电 层之 问 有 许多 细 小 的透 明 隔 离 � 点 把它 们绝 缘隔 开. 工 业中 常 用 I TO I T O ,氧 化锡 导 电层 . 当手 指 触摸 屏 幕时 ,平常 绝 缘的 两 层 导 电层 � 在触 摸 点位 � 置 就有 了 一个 接 触,控 制器 检 测到 这 个接 通 后,其 中 一面 电 层接 通 轴 方向 的 5 电� 场,另 一导 电 层将 接 触 点的 电 压引 至 控制 电 路进 行 A/D 转 换,得 到电 压 值后 与 5 均匀
硬件结构
系 统的 硬 件结 构 如图 1 所示 .A 7连 接 触摸 屏 的 X P 引脚 , 而 A 5 连 接触 摸 屏 的 YP 引脚 , 要 控 制触 摸 屏

第16章 触摸屏设备驱动程序

第16章  触摸屏设备驱动程序

16.2.2
S3C2440触摸屏接口的工作模式
S3C2440触摸屏接口有4种工作模式。在不同的工作模 式下,触摸屏设备完成不同的功能。在某些情况下,几种工 作模式需要互相配合,才能够完成一定的功能。这4种工作 模式分别是: 1.正常转换模式 2.等待中断模式 3.独立的X/Y位置转换模式 4.自动X/Y位置转换模式
16.3.6
S3C2440触摸屏驱动模块的remove函 数
remove()函数是Linux设备驱动程序中一个非常重要的 函数,这个函数实现了与probe()函数相反的功能。体现了 Linux内核中,资源分配和释放的思想。资源应该在使用时 分配,在不使用时释放。触摸屏设备驱动程序的remove()函 数由s3c2410ts_remove()函数来实现。这个函数中释放了申 请的中断、时钟、内存等。
16.4
测试触摸屏驱动程序
测试触摸屏驱动程序是否工作正确,最简单的一种方 法是在驱动程序中加入一些打印坐标的信息,从这些坐标中 分析触摸屏设备驱动程序是否工作正常。touch_timer_fire() 函数会不断的调用去读输入缓冲区中的数据,在 touch_timer_fire()函数中加入第14到21行,就能够打印出调 试信息。
第16章
触摸屏设备驱动程序
由于触摸屏设备使用简单、价格相对低廉,它的应用随处 可见。在消费电子产品、工业控制系统、甚至航空领域都所有应 用。随着触摸屏设备技术的成熟和价格的日益下降,在我们的日 常生活中也经常使用带触摸屏的设备。例如银行的ATM机、机 场的查询等级系统、手机、MP3、掌上电脑等。正因为触摸屏设 备应用如此广泛,所以掌握触摸屏设备驱动程序的编写对驱动开 发者来说非常重要。本章将对触摸屏设备驱动程序进行详细的介 绍。

基于STM32的触摸屏显示系统设计

基于STM32的触摸屏显示系统设计

基于STM32的触摸屏显示系统设计1.引言随着科技的不断进步,触摸屏显示系统越来越普及和应用广泛。

触摸屏提供了一种直观、简单且交互性强的用户输入方式,因此在很多领域都有广泛的应用,如智能手机、平板电脑、汽车导航等。

本文将介绍一种基于STM32的触摸屏显示系统设计。

2.系统架构系统由主控板、触摸屏模块以及液晶显示器组成。

主控板使用STM32微控制器作为核心,负责整个系统的控制和数据处理。

触摸屏模块通过SPI接口与主控板连接,实现对触摸事件的检测和数据传输。

液晶显示器通过GPIO接口与主控板连接,用于显示系统界面。

3.系统功能该触摸屏显示系统具有以下功能:3.1触摸事件检测和处理系统能够实时检测到用户的触摸事件,并根据触摸事件进行相应的处理。

通过触摸屏模块的驱动和算法,可以高效地检测到触摸事件的位置和状态,如按下、滑动、放开等,并将触摸事件数据传输给主控板进行处理。

3.2图形界面显示系统能够将处理后的数据以图形界面的形式显示在液晶显示器上。

主控板通过与液晶显示器的通信,将界面数据传输给显示器,并控制显示器进行相应的显示。

用户可以通过触摸屏进行交互,如点击按钮、滑动列表等。

3.3音频播放系统还可以进行音频播放功能。

通过主控板的音频接口,可以连接外部音频设备,如音响或耳机。

用户可以通过触摸屏界面选择和控制音频文件的播放、暂停、调节音量等。

4.系统设计4.1硬件设计硬件设计包括主控板、触摸屏模块和液晶显示器的选型和连接设计。

主控板选择STM32系列的微控制器,具有丰富的外设和高性能的处理能力。

触摸屏模块选择支持SPI接口的触摸屏驱动芯片,能够实现高速数据传输和准确的触摸事件检测。

液晶显示器选择支持GPIO接口的液晶屏,具有较高的分辨率和显示效果。

4.2软件设计软件设计包括主控板的固件开发和触摸屏界面的设计。

主控板的固件开发主要包括驱动程序和应用程序的编写。

驱动程序包括对触摸屏模块和液晶显示器的控制程序,实现数据传输和显示控制。

触摸屏程序设计

触摸屏程序设计

5.实验原理
S3C2410A微控制器内嵌了一个 S3C2410A微控制器内嵌了一个ADC和触摸屏接口,只需要在微控 微控制器内嵌了一个ADC和触摸屏接口 和触摸屏接口, 制器外部外接少量器件,就可以与触摸屏相连,实现触摸功能。 制器外部外接少量器件,就可以与触摸屏相连,实现触摸功能。 Linux操作系统中 该控制器对应的字符型驱动源文件为: 操作系统中, 在Linux操作系统中,该控制器对应的字符型驱动源文件为: s3c2410-ts.c,将该驱动编译为模块后,生成驱动模块:s3c2410ts.ko。 s3c2410-ts.c,将该驱动编译为模块后,生成驱动模块:s3c2410ts.ko。 使用该驱动模块时,只须将该模块用insmod命令插入到内核中即可 命令插入到内核中即可。 使用该驱动模块时,只须将该模块用insmod命令插入到内核中即可。 该模块插入内核后,自动在Linux的 该模块插入内核后,自动在Linux的/dev/目录下创建节点 touchscreen。 touchscreen。 对触摸屏设备的操作除了打开设备、关闭设备操作以外, 对触摸屏设备的操作除了打开设备、关闭设备操作以外,一般 只有读操作。读操作读取触摸屏的触点座标值及动作信息, 只有读操作。读操作读取触摸屏的触点座标值及动作信息,读取结 果保存在一个结构体变量中,该结构体的定义如程序清单1所示。 果保存在一个结构体变量中,该结构体的定义如程序清单1所) 启动MagicARM2410实验箱上的Linux,进行NFS连接,进入触摸屏驱动所 启动MagicARM2410实验箱上的 实验箱上的Linux,进行NFS连接 连接, 在目录,先插入触摸屏驱动模块, 目录,运行应用程序, 在目录,先插入触摸屏驱动模块,然后进入touchscreen目录,运行应用程序, 查看运行结果。 查看运行结果。

触摸屏设计方案

触摸屏设计方案

触摸屏设计方案1. 引言触摸屏作为一种用户界面交互方式,已经在电子设备领域中得到广泛应用。

它可以取代物理按键,提供更直观、便捷的操控方式。

本文将介绍一个触摸屏设计方案,包括设计目标、硬件选型、软件开发以及测试计划。

2. 设计目标在设计触摸屏前,首先需要明确设计目标。

以下是本设计方案的目标:•实现高精度触摸控制:触摸屏应该有足够的分辨率和灵敏度,以实现精准的触摸控制。

•支持多点触控:触摸屏应该支持多点触控,以实现更复杂的手势操作。

•高可靠性和稳定性:触摸屏应该具备高可靠性和稳定性,能够在长时间使用中保持正常工作。

•低功耗:触摸屏应该尽可能降低功耗,延长电池续航时间。

•符合人体工程学设计:触摸屏的外形和尺寸应该符合人体工程学的要求,使操作更舒适。

3. 硬件选型选择适合的硬件是设计触摸屏的重要一步。

下面是本设计方案的硬件选型:3.1 触摸屏芯片触摸屏芯片是触摸屏的核心组件,负责将触摸信号转换为数字信号输出。

在选型触摸屏芯片时,需要考虑以下因素:•分辨率:选择具备高分辨率的触摸屏芯片,以获得更准确的触摸控制。

•灵敏度:选择灵敏度高的触摸屏芯片,以提高触摸的响应速度。

•接口类型:触摸屏芯片应支持常用接口类型,比如I2C或SPI,在连接主控芯片时更加方便。

•抗干扰能力:触摸屏芯片应具备较好的抗干扰能力,以减少外部干扰对触摸控制的影响。

3.2 显示屏触摸屏一般与显示屏结合使用,形成一个完整的显示控制系统。

在选型显示屏时,需要考虑以下因素:•分辨率:选择与触摸屏芯片匹配的显示屏,以保证触摸和显示的一致性。

•尺寸和比例:根据应用场景和终端设备的尺寸要求选择合适的显示屏尺寸和比例。

•显示技术:根据应用需求选择合适的显示技术,比如LCD、OLED等。

3.3 控制器控制器是触摸屏与主控芯片之间的桥梁,负责将触摸信号传输给主控芯片,并接收主控芯片发送的指令。

在选型控制器时,需要考虑以下因素:•接口类型:选择与主控芯片兼容的控制器,以确保信号传输的稳定性。

mini2440触摸屏驱动分析

mini2440触摸屏驱动分析

mini2440驱动分析系列之---------------------------------------Mini2440触摸屏程序分析By JeefJiang July,8th,2009这是mini2440驱动分析系列的第三篇文章,本文分为三个部分,第一部分讲叙硬件知识,包括触摸屏的原理以及SCC2440 SOC上的触摸屏是如何工作的。

第二部分分析输入设备子系统的框架,并进行相应的代码分析。

第三部分利用上述的原理来分析mini2440的触摸屏驱动。

第四部分介绍了测试和校准。

1.需要准备的硬件知识1.1电阻式触摸屏工作原理原理触摸屏附着在显示器的表面,与显示器相配合使用,如果能测量出触摸点在屏幕上的坐标位置,则可根据显示屏上对应坐标点的显示内容或图符获知触摸者的意图。

触摸屏按其技术原理可分为五类:矢量压力传感式、电阻式、电容式、红外线式、表面声波式,其中电阻式触摸屏在嵌入式系统中用的较多。

电阻触摸屏是一块4层的透明的复合薄膜屏,如图2所示,最下面是玻璃或有机玻璃构成的基层,最上面是一层外表面经过硬化处理从而光滑防刮的塑料层,中间是两层金属导电层,分别在基层之上和塑料层内表面,在两导电层之间有许多细小的透明隔离点把它们隔开。

当手指触摸屏幕时,两导电层在触摸点处接触。

触摸屏的两个金属导电层是触摸屏的两个工作面,在每个工作面的两端各涂有一条银胶,称为该工作面的一对电极,若在一个工作面的电极对上施加电压,则在该工作面上就会形成均匀连续的平行电压分布。

如图4所示,当在X方向的电极对上施加一确定的电压,而Y方向电极对上不加电压时,在X平行电压场中,触点处的电压值可以在Y+(或Y-)电极上反映出来,通过测量Y+电极对地的电压大小,便可得知触点的X 坐标值。

同理,当在Y电极对上加电压,而X电极对上不加电压时,通过测量X+电极的电压,便可得知触点的Y坐标。

电阻式触摸屏有四线和五线两种。

四线式触摸屏的X工作面和Y工作面分别加在两个导电层上,共有四根引出线,分别连到触摸屏的X电极对和Y电极对上。

基于MPC8306处理器的触摸屏驱动优化设计

基于MPC8306处理器的触摸屏驱动优化设计
入设备 , 具有坚固耐用 、 反应速度快、 节省空间、 易于
( 许继 电气股份有 限公 司,河南 许 昌 4 6 1 0 0 0 )

要 :介 绍 了触摸 屏 控 制 系统的硬 件构 成 ,四线 电 阻触摸 屏 的工作 原理 。采 用基 于 P O WE R P C
架构的 M P C 8 3 0 6 作为主控制器,A D S 7 8 4 6作为四线 电阻触摸屏控制器。驱动程序 设计 中,使 用 中值平均滤波等软件滤波算法对采样数据进行优化 处理。通过计算触摸 电阻对采样数据进行取 舍,消除了触摸按键漂移现 象。设计 中提 出一种状 态分段 法,辅助进行驱动程序流程设计。应 用表 明该触摸屏 系统 工作 稳 定可 靠 ,触控 效果很 好 。 关键词 : 触摸屏 ;M P C 8 3 0 6 ;A D S 7 8 4 6 ;软件滤波;触摸电阻
r e l i a b i l i t y ,a nd t h e t o u c h e f e c t i s g o o d . Ke y wo r d s :t o u c h — s c r e e n;MP C 8 3 0 6;ADs 7 8 4 6;s o f t wa r e i f l t e i r n g ;t o u c h r e s i s t a n c e
0 引言
在现实生活中, 人们越来越多地接触到触摸屏 , 其应用极大地改善了人们的生活。触摸屏是一种附
1 四线 电阻触摸屏工作原理
四线 电阻触摸屏能够感知触摸的位置 , 实际上
是基 于一 种 电阻 分 压 原 理 。它 是 一 块 4层 透 明 的
着在液晶屏上的触摸传感器件 , 作为一种新兴的输
2 0 1 3 年第1 期
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

触摸屏控制器驱动程序设计在便携式的电子类产品中,触摸屏由于其便、灵活、占用空间少等优点,已经逐渐取代键盘成为嵌入式计算机系统常选用的人机交互输入设备。

触摸屏输入系统由触摸屏、触摸屏控制器、微控制器及其相应的驱动程序构成。

本文从触摸屏控制器的驱动程序设计着手,介绍触摸屏控制器ADS7843的内部结构及工作原理和在嵌入式Linux操作系统中基于PXA255微处理器的ADS7843驱动程序设计。

1触摸屏控制器ADS7843的介绍1.1ADS7843的内部结构ADS7843内驻一个多路低导通电阻模拟开关组成的供电-测量电路网络、12bit逐次逼近A/D转换器和异步串行数据输入输出,ADS7843根据微控制器发来的不同测量命令导通相应的模拟开关,以便向触摸屏电极对提供电压,并把相应电极上的触点坐标位置所对应的电压模拟量引入A/D 转换器,图1为ADS7843内部结构图。

X+、Y+、X-、Y-为触摸屏电极模拟电压输入;CS为ADS7843的片选输入信号,低电平有效;DCLK接外部时钟输入,为芯片进行A/D转换和异步串行数据输入/输出提供时钟;DIN串行数据输入端,当CS低电平时,输入数据在时钟的上升沿将串行数据锁存;DOUT串行数据输出端,在时钟下降沿数据由此移位输出,当CS为高电平时,DOUT呈高阻态。

BUSY为系统忙标志端,当CS为低电平,且BUSY 为高电平时,表示ADS7843正在进行数据转换;VREF参考电压输入端,电压值在+1V到+VCC之间变化;PENIRQ为笔触中断,低电平有效;IN3、IN4为辅助ADC转换输入通道;+VCC为电源输入。

图1ADS7843内部结构1.2ADS7843的转换时序ADS7843完成一次数据转换需要与微控制器进行3次通信,第一次微处理器通过异步数据传送向ADS843发送控制字,其中包括起始位、通道选择、8/12位模式、差分/单端选择和掉电模式选择,其后的两次数据传送则是微控制器从ADS7843取出16bitA/D转换结果数据(最后四位自动补零),每次通信需要8个时钟周期,完成一次数据转换共需24个时钟周期,图2为ADS7843转换时序。

图2ADS7843转换时序2ADS7843与PXA255硬件接口PXA255微处理器是Intel公司生产的第二代基于32位XScale微架构的集成系统芯片(ISOC),PXA255具有高性能、低功耗等优点,它除了XScale 微内核外,还集成了许多适用于手持设备市场需要的外围设备。

图3为ADS7843触摸屏控制器与PXA255微处理器的硬件连线示意图。

当屏触发生时ADS7843向PXA255发出中断请求,由PXA255响应该中断请求,启动通信过程,读取ADS7843的转换结果,从而得到触摸点的坐标。

ADS7843各信号的时序受外部输入时钟信号频率的影响,一旦外部输入时钟频率固定,各信号的时序便完全确定,因此需要配置PXA255的接口信号时序,使之完全符合ADS7843的时序。

图3ADS7843触摸屏控制器与PXA255微处理器的连线示意图3ADS7843驱动程序的设计Linux作为一个宏内核操作系统,其设备驱动都在内核,即系统空间实现,实现方式有两种,一种是将有关的设备驱动程序和数据结构静态地连接在内核映像中;另一种是将具体的设备驱动程序和数据结构独立加以编译,成为可安装的模块,需要时由应用程序通过系统调用动态地予以安装或拆卸。

设备驱动的实现方法也有两种,一种是轮询(polling)方式,另一种是中断(inter-rupt)方式,轮询方式对设备的操作完全由CPU掌握,外部设备则完全处于被动状态。

中断方式是由外部设备主动提出申请,CPU 响应申请后对外部设备进行处理,是现在常用的设备驱动方式。

Linux的设备驱动具有两个显著的特点,其一是把所有的设备视为一种设备文件,每个设备都呈现于文件系统的/dev目录下,设备驱动与文件操作具有相同的界面和语义,并通过同一组系统调用进行操作;另一个显著特点是Linux的设备驱动有着分明的层次和结构。

Linux内核的新近版本为设备入口提供了一种特殊的文件系统,即设备文件系统devfs(device)。

新的devfs机制的优点在于:①各种设备驱动模块动态地向系统登记,设备初始化时在/dev目录下创建设备入口点,移除设备时将其删除。

②设备驱动程序可以指定设备名、所有者和权限位。

③不需要为设备驱动程序分配主设备号以及次设备号。

④当装载和卸载模块时,不再需要运行脚本来创建设备文件,驱动程序自主地管理其设备文件。

采用devfs机制的设备驱动程序调用下面的函数来处理设备的创建和删除工作。

devfs_hander_tdevfs_mk_dir(devfs_han2der_tdir,constchar3name,void3in fo)devfs_hander_tdevfs_register(devfs_han2der_tdir,constchar3NAME,unsig nedintflags,unsignedintmajor,unsignedintminor,umode_tmode,void3ops,v oid3info)voiddevfs_unregister(devfs_hander_tde)在Linux操作系统编写设备驱动程序时有几个固定的功能模块:向Linux 内核注册该设备时的初始化设备驱动程序模块;用于系统卸载模块时删除设备驱动程序的模块;提供用户使用该设备驱动程序的文件操作接口模块。

对于各类具体设备编写驱动程序时还应具有对该设备进行操作的应用函数。

下面就以ADS7843驱动程序设计为例分析以上几个功能模块。

1)ADS7843向Linux内核注册设备时的初始化函数int__initads7843_ts_init(void)//设备初始化函数{intret;if((ret=devfs_register_chrdev(TS_MAJOR,TS_NAME,&ads7843_ts_fops))!= 0){printk("registeringof"TS_NAME"isfailed\n");returnret;}devfs_ts_dir=devfs_mk_dir(NULL,"touchscreen",NULL);//建立触摸屏设备目录devfs_handle=devfs_register(devfs_ts_dir,"ts",DEVFS_FL_DEFAULT,TS_MAJ OR,0,S_IFCHR|S_IRUSR|S_IWUSR,&ads7843_ts_fops,NULL);//注册设备if((ret=request_irq(IRQ_GPIO_ADS7843,ads7843_ts_inter-rupt,SA_SHIRQ|SA_INTERRUPT,TS_NAME,dev_id)))//申请中断{printk("ads7843_ts_init:failedtoregisterIRQ\n");free_irq(IRQ_GPIO_ADS7843,dev_id);returnret;}if((ret=ads7843_init())!=0)//初始化触摸屏{free_irq(IRQ_GPIO_ADS7843,dev_id);returnret;}GPDR0&=~GPIO_bit(ADS7843_BUSY);GPDR0&=~GPIO_bit(ADS7843_DOUT);Ads7843_Enable_IRQ();//开启中断printk("ads7843touchscreendriverinitialized\n");return0;}2)系统卸载ADS7843驱动程序功能函数void__exitads7843_ts_cleanup(void)//卸载驱动程序函数{if(in_timehandle)del_timer(&timer);free_irq(IRQ_GPIO_ADS7843,dev_id);//释放中断devfs_unregister_chrdev(TS_MAJOR,TS_NAME);//从系统中删除设备驱动程序printk("ads7843touchscreendriverremoved\n");}3)在驱动程序最后用于模块初始化和删除驱动的功能函数module_init(ads7843_ts_init);//初始化驱动模块函数module_exit(ads7843_ts_cleanup);//删除驱动模块函数4)ADS7843设备文件操作结构体staticstruct{read:ads7843_ts_read,//从设备中读数据操作poll:ads7843_ts_poll,//查询设备操作ioctl:ads7843_ts_ioctl,//设备IO控制操作fasync:ads7843_ts_fasync,//异步通知操作open:ads7843_ts_open,//打开设备操作release:ads7843_ts_release,};//当文件结构被释放时,调用释放操作由于文章篇幅所限,对设备文件操作的功能函数不再一一列出。

5)ADS7843具体操作函数①ADS7843串行输出控制字函数voidADS7843_din(charcommand)udelay(DELAY);//延时for(inti=0;i>i)&0x1)ADS7843_SetBit(0,ADS7843_DIN);//数据位为1elseADS7843_ClearBit(0,ADS7843_DIN);//数据位为0udelay(DELAY);ADS7843_SetBit(0,ADS7843_CLK);}}//时钟变高②微处理器读取X坐标值函数(读取Y坐标值函数相类似,控制字为0x90)intADS7843_ts_measure_x(void){chari,inttouch_data=0;ADS7843_ClearBit(0,ADS7843_CS);//片选端置低电平udelay(DELAY);ADS7843_din(0xD0);//向ADS7843发送读X坐标控制字0xD0ADS7843_ClearBit(0,ADS7843_CLK);udelay(DELAY);while(!(GPLR0&GPIO_bit(ADS7843_BUSY)))printk("BUSY1\n");ADS7843_ClearBit(0,ADS7843_CLK);for(i=0;i>=3;//对最后4位自动置0处理return(touch_data&0xfff);}4驱动模块的安装在Linux操作系统中,对于已编好的设备驱动程序,利用编译工具将驱动程序编译成驱动模块。

相关文档
最新文档