当前位置: 首页 > news >正文

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-25 多点电容触摸屏实验

前言:

本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。

引用:

正点原子IMX6U仓库 (GuangzhouXingyi) - Gitee.com

《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》

正点原子资料下载中心 — 正点原子资料下载中心 1.0.0 文档

正文:

本文是 “正点原子[第二期]Linux之ARM(MX6U)裸机篇--第25讲 多点电容触摸屏实验。本节将参考正点原子的视频教程第24讲和配套的正点原子开发指南文档进行学习。

0. 概述

随着智能手机的发展,电容触摸屏也得到了飞速的发展。相比电阻触摸屏,电容触摸屏有很多的优势,比如支持多点触控、不需要按压,只需要轻轻触摸就有反应。 ALIENTEK 的三款RGB LCD 屏幕都支持多点电容触摸,本章就以 ATK7016 这款 RGB LCD 屏幕为例讲解一下如何驱动电容触摸屏,并获取对应的触摸坐标值。

1. 点电容触摸简介

触摸屏很早就有了,一开始是电阻触摸屏,电阻触摸屏只能单点触摸,在以前的学习机、功能机时代被广泛使用。 2007 年 1 月 9 日苹果发布了划时代的第一代 Iphone,也就是 Iphone2G, Iphone 2G 上使用了多点电容触摸屏,而当时的手机基本都是使用的电阻触摸屏。电容触摸屏优秀的触摸品质和手感瞬间征服了消费者,带来了手机触摸屏的大变革,后面新出的手机也都采用了多点电容触摸屏。和电阻触摸屏相比,电容触摸屏最大的优点是支持多点触摸(后面的电阻屏也支持多点触摸,但是为时已晚),电容屏只需要手指轻触即可,而电阻屏是需要手指给予一定的压力才有反应,而且电容屏不需要校准。如今多点电容触摸屏已经得到了广泛的应用,手机、平板、电脑、广告机等等,如果要做人机交互设备的开发,多点电容触摸屏基本是不可能绕过去的。所以本章我们就来学习一下如何使用多点触摸屏,如何获取到多点触摸值。关于电容屏的物理原理我们就不去研究了,毕竟我们不是开发电容屏的,而是电容屏的使用者,我们只需要关注如何使用电容屏,如何得到其多点触摸坐标值即可。 ALIENTEK 的三款 RGB LCD 屏幕都是支持 5 点电容触摸屏的,本章我们同样以 ATK-7016 这款屏幕为例来讲解如何使用多点电容触摸屏。

ATK-7016 这款屏幕其实是由 TFT LCD+触摸屏组合起来的。底下是 LCD 面板,上面是触摸面板,将两个封装到一起就成了带有触摸屏的 LCD 屏幕。电容触摸屏也是需要一个驱动 IC的,驱动 IC 一般会提供一个 I2C 接口给主控制器,主控制器可以通过 I2C 接口来读取驱动 IC里面的触摸坐标数据。 ATK-7016、 ATK-7084 这两款屏幕使用的触摸控制 IC 是 FT5426, ATK-4342 使用的驱动 IC 是 GT9147。这三个电容屏触摸 IC 都是 I2C 接口的,使用方法基本一样。

FT5426这款驱动使用的是15*28的驱动结构,也就是15个感应通道,28个驱动通道,最多支持5点电容触摸。 ATK-7016的带你用触摸屏部分有4个IO通道用于连接主控制器:SCL,SDA,RST 和 INT,SCL和SDA都是 I2C 引脚,RST是复位引脚,INT是中断引脚。一般通过INT引脚来通知主控制器有触摸点按下,然后在INT中断服务函数中读取触摸数据。也可以不使用中断功能,采用轮询的方式不断查询是否有触摸点按下,本章实验我们使用中断的方式来获取触摸数据。

和所有的I2C器件一样,FT5426也是通过读写寄存器的来万策划给你初始化和触摸坐标数据读取的,I.MX6U 的 I2C 我们已经在第26张做了详细的讲解,所以本章的主要工作就是读写 FT5426 的寄存器。FT5426的 I2C 设备地址为 0x38,FT5426 的寄存器有很多,本章我们只用到了其中的一部分,如下表所示:

2. 硬件原理分析

CT_INT触摸屏中断GPIO1_IO09
I2C2_SCLI2C SCL 线UART5_TXD
I2C2_SDAI2C SDA 线UART5_RXD
CT_RST触摸Reset复位SNVS_TAMPER9

硬件原理分析

3. 源码编写

编写LCD多点电容触摸屏I2C驱动程序,来获取触摸屏的触摸信息。初始化电容触摸屏,并通过I2C接口获取触摸屏信息的步骤如下,本节我们是用中断的方式在中断处理函数中获取触摸点信息:

1. IO_MUX复用配置,IO接口电气特性配置

2. I2C 接口初始化

3. 触摸屏驱动芯片的初始化

http://www.lryc.cn/news/367564.html

相关文章:

  • B3726 [语言月赛202303] String Problem P
  • htb-linux-3-shocker
  • Elasticsearch - No mapping found for [field_name] in order to sort on
  • Lua 元表(Metatable)深入解析
  • MySQL Show命令集
  • 倩女幽魂搬砖攻略:云手机自动托管搬砖刷本选哪家云手机?
  • php7.3安装phalcon扩展
  • IIoT(智能物联网)的现状、应用及安全
  • YOLOv8_obb的训练、验证、预测及导出[旋转目标检测实践篇]
  • C语言实战:贪吃蛇(万字详解)
  • 定时器更新界面,线程报错
  • 未来AI大模型的发展趋势
  • 【JavaScript函数详解】Day04
  • json和axion结合
  • v1.2.70-FastJson的AutoType机制研究
  • 老旧机子装linux——Xubuntu
  • 关于Redis中事务
  • 【数据分享】《中国文化文物与旅游统计年鉴》2022
  • 设计模式及其在软件开发中的应用
  • LeetCode72编辑距离
  • 竞拍商城系统源码后端PHP+前端UNIAPP
  • 千益畅行,共享旅游卡,灵活同行,畅游无忧的全方位解析
  • Web IDE 在线编辑器综合实践(Web IDE 技术探索 三)
  • Less is more VS 精一 [生活感悟]
  • 函数的概念及图像
  • Linux中Apache网站基于Http服务的访问限制(基于地址/用户)
  • 滚动条详解:跨平台iOS、Android、小程序滚动条隐藏及自定义样式综合指南
  • 06 Linux 设备驱动模型
  • 检测五个数是否一样的算法
  • java 原生http服务器 测试JS前端ajax访问实现跨域传post数据