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

目录

学习目标

成果展示 

硬件知识

触摸屏

分类

区别

 寄存器

控制命令寄存器(0X8040)

配置寄存器组(0X8047~0X8100)

产品 ID 寄存器(0X8140~0X8143)

状态寄存器(0X814E)

坐标数据寄存器

硬件连接

代码 

总结 


学习目标

        本次实验我们讲解的是有关触摸屏的知识,原理是和我们的手机是一样的,采用电容型的方式,可以实现在显示屏上多点触摸并且划线。但是因为触摸芯片坏了,所以实验展示无法展示,等以后补上。

成果展示 

硬件知识

触摸屏

        触摸屏(touch screen)又称为“触控屏”、“触控面板”,是一种可接收触头等输入讯号的感应装置。作为一种新型的电脑输入设备,可以用来取代传统的机械按键等输入设备。它时目前最简单、方便、自然的一种人机交互方式。主要应用于公共信息的查询、领导办公、工业控制、军事指挥、电子游戏、点歌点菜、多媒体教学、房地产预售等。

        触摸屏本质上是与液晶分离的。触摸屏负责的是检测触摸点,液晶屏负责的是显示,要区别开来。

分类

表面电容式

        表面电容式触摸屏技术是利用 ITO(铟锡氧化物,是一种透明的导电材料)导电膜,通过电场感应方式感测屏幕表面的触摸行为进行。但是表面电容式触摸屏有一些局限性,它只能识别一个手指或者一次触摸。

投射式

        投射电容式触摸屏是传感器利用触摸屏电极发射出静电场线。一般用于投射电容传感技术的电容类型有两种:自我电容和交互电容。

        自我电容又称绝对电容,是最广为采用的一种方法,自我电容通常是指扫描电极与地构成的电容。在玻璃表面有用 ITO 制成的横向与纵向的扫描电极,这些电极和地之间就构成一个电容的两极。当用手或触摸笔触摸的时候就会并联一个电容到电路中去,从而使在该条扫描线上的总体的电容量有所改变。在扫描的时候,控制 IC 依次扫描纵向和横向电极,并根据扫描前后的电容变化来确定触摸点坐标位置。笔记本电脑触摸输入板就是采用的这种方式,笔记本电脑的输入板采用 X*Y 的传感电极阵列形成一个传感格子,当手指靠近触摸输入板时,在手指和传感电极之间产生一个小量电荷。采用特定的运算法则处理来自行、列传感器的信号来确定手指的位置。

        交互电容又叫做跨越电容,它是在玻璃表面的横向和纵向的 ITO 电极的交叉处形成电容。 交互电容的扫描方式就是扫描每个交叉处的电容变化,来判定触摸点的位置。当触摸的时候就会影响到相邻电极的耦合,从而改变交叉处的电容量,交互电容的扫面方法可以侦测到每个交叉点的电容值和触摸后电容变化,因而它需要的扫描时间与自我电容的扫描方式相比要长一些, 需要扫描检测 X*Y 根电极。目前智能手机/平板电脑等的触摸屏,都是采用交互电容技术。

区别

  1. 电阻屏在触摸时需要轻触按压,而电容屏只需要轻微的手指触碰就能激活。
  2. 电阻屏可以用任何物体来触摸,而电容屏是人体热感应原理,只能用手指的热感区来触摸,指甲和手写笔均无效。由于手指的面积比手写笔大很多,因此电容屏的手机触摸比较小的图标或者菜单时,触摸精度无法做到电阻屏那么高。
  3. 电容屏可以很容易进行多点触摸,电阻屏一般不能实现多点触摸。
  4. 电阻屏内部是软的,一般是在4到5层超薄的钢化玻璃中间夹层细微的碳粒(显微镜下才能看见),通过按压导致上下两层的碳粒相互接触而接通触屏电路,产生触摸反应,容易产生划痕,易坏,容易触屏不灵,而电容屏都是采用单层加厚钢化玻璃,硬度大,耐旧,使用寿命长。
  5. 电阻屏在阳光下可视性稍差,电容屏则非常好,在阳光下可视性强。
  6. 电容触摸屏对工作环境的要求是比较高的,在潮湿、多尘、高低温环境下面,都是不合适使用电容屏的。

 寄存器

        GT9147 与 MCU 连接是通过 4 根线:SDA、SCL、RST 和 INT。不过,GT9147 的 IIC 地址,可以是 0X14 或者 0X5D,当复位结束后的 5ms 内,如果 INT 是高电平,则使用 0X14 作为地址,否则使用 0X5D 作为地址,本章我们使用 0X14 作为器件地址(不含最低位,换算成读写命令则是读: 0X29,写:0X28),接下来,介绍一下 GT9147 的几个重要的寄存器。

控制命令寄存器(0X8040)

        该寄存器可以写入不同值,实现不同的控制,我们一般使用 0 和 2 这两个值,写入 2,即可软复位 GT9147,在硬复位之后,一般要往该寄存器写 2,实行软复位。然后,写入 0,即可 正常读取坐标数据(并且会结束软复位)

配置寄存器组(0X8047~0X8100)

        这里共 186 个寄存器,用于配置 GT9147 的各个参数,这些配置一般由厂家提供给我们(一个数组),所以我们只需要将厂家给我们的配置,写入到这些寄存器里面,即可完成 GT9147 的配置。

产品 ID 寄存器(0X8140~0X8143)

        这里总共由 4 个寄存器组成,用于保存产品 ID,对于 GT9147,这 4 个寄存器读出来就是:9,1,4,7 四个字符(ASCII 码格式)。因此,我们可以通过这 4 个寄存器的值,来判断驱动 IC 的型号,从而判断是 OTT2001A 还是 GT9147,以便执行不同的初始化。

状态寄存器(0X814E)

        这里,我们仅关心最高位和最低 4 位,最高位用于表示 buffer 状态,如果有数据(坐标/ 按键),buffer 就会是 1,最低 4 位用于表示有效触点的个数,范围是:0~5,0,表示没有触摸, 5 表示有 5 点触摸。这和前面 OTT2001A 的表示方法稍微有点区别,OTT2001A 是每个位表示 一个触点,这里是有多少有效触点值就是多少。最后,该寄存器在每次读取后,如果 bit7 有效, 则必须写 0,清除这个位,否则不会输出下一次数据!

坐标数据寄存器

        我们一般只用到触点的 x,y 坐标,所以只需要读取 0X8150~0X8153 的数据,组合即可得到触点坐标。其他 4 组分别是:0X8158、0X8160、0X8168 和 0X8170 等开头的 16 个寄存器组成,分别针对触点 2~4 的坐标。同样 GT9147 也支持寄存器地址自增,我们只需要发送寄存器组的首地址,然后连续读取即可,GT9147 会自动地址自增,从而提高读取速度。

硬件连接

代码 

        代码部分过多,就不展示了。

总结 

        学习到了新的知识点,感觉还不错。 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值