版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 XPT2046触摸屏实验过程详解与STM32代码解析学习标:1.复习 STM32 的硬件 SPI2.学习触摸屏的原理做触摸屏实验触摸屏的简介现在的液晶屏部分都带触摸了,般我们使较多的是电阻式触摸屏(多点触摸属 于电容式触摸屏,如乎所有智能机都持多点触摸,它们所的屏就是电容式的触摸屏) 我们彩屏上带的也是电阻式的触摸屏。电阻触摸屏的主要部分是块与显器表常配合的电阻薄膜屏,它是种多层的复 合薄膜,它以层玻璃或硬塑料平板作为基层,表涂有层透明氧化属(透明的导电电 阻)导电层,上再盖有层外表硬化处理、光滑防擦的塑料层、它的内表也涂有层 涂层、在他们之间有许多细的(于1/1000 英)的透明隔离点把两
2、层导电层隔开绝缘。当指触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发变化,在 X 和 Y 两个向上的电压发变化,产信号,然后控制器读取信号,并计算出指触摸的位置, 这就是电阻式触摸屏的原理。触摸屏的控制 XPT2046 芯简介从上的简介,我们知道触摸屏都需要个 AD 转换器,也就是要将电压变化读取出 来,供主机求出触摸的位置。我们彩屏上使的触摸芯是XPT2046。XPT2046 的特点主要有:1. 款 4 导线制触摸屏控制器,采 SPI 模式进通信。2. 内含 12 位分辨率 125KHz 转换速率逐步逼近型 A/D 转换器。3. 持从 1.5V 到 5.25V 的低电压 I/O 接。X
3、PT2046 应该有 16 个引脚,如图:其引脚说明如下: 从上的引脚图,我们知道,XPT2046 跟单机的主要引脚主要有:BUSY、DIN(单 机 SPI 输出端)、CS、DCLK(单机 SPI 时钟端)、PEN(笔触中断)、DOUT(单机 SPI 输端)3PZ6808L触摸屏的原理图1. XPT2046 的初始化XPT2046 说起来其实就是个 AD 转换器,所以它适合不需要什么初始化设置的, 具体的初始化其实也就是单机 IO 的初始化和 SPI的初始化。这次 STM32 是使 SPI1 来进操作,SPI 的设置其实在前节课已经讲过了,这 就不重复讲了,初始化的具体代码如下: : TOUC
4、H_Init: 初始化触摸屏GPIO_InitTypeDef GPIO_InitStructure ;/* SPI 的 IO 和SPI 外设打开时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);/* TOUCH-CS 的 IO 设置*/GPIO_InitStructure .GPIO_Pin = GPIO_Pin_6;GPIO_InitStructure .GPIO_Mode =GPIO_Mode_Out_PP;GPIO_InitStructure .GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(
5、GPIOD, &GPIO_InitStructure);/* TOUCH-PEN 的 IO 设置*/GPIO_InitStructure .GPIO_Pin = GPIO_Pin_7;GPIO_InitStructure .GPIO_Mode =GPIO_Mode_IPU;GPIO_Init(GPIOD, &GPIO_InitStructure); SPI1_Config();/* 要使FLASH 来存储校正参数,所以注意之前要初始化*/* 检测是否有校正参数*/FLASH_ReadData(&TouchAdj.posState,TOUCH_ADJ_ADDR, sizeof(TouchAdj)
6、;if(TouchAdj.posState != TOUCH_ADJ_OK)TOUCH_Adjust(); /校正在这个函数中,调了 SPI1 的初始化函数,和触摸屏的校正程序,下是 SPI1 的初始化程序,校正原理我们在后在讲述。 GPIO_InitTypeDef GPIO_InitStructure ;SPI_InitTypeDef SPI_InitStructure ;/* SPI 的 IO 和 SPI 外设打开时钟*/* SPI 的 IO 设置*/GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7); /PA5.6.7 上拉/*/*设
7、置 SPI 的参数*/*/SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex ;/选择全双SPI 模式SPI_InitStructure.SPI_Mode = SPI_Mode_Master;SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; /8 位 SPI/时钟悬空电平/在第个时钟采集数据/Nss 使软件控制SPI_Cmd(SPI1, ENABLE);SPI_Init(SPI1, &SPI_InitStructure);2. XPT2046 读取 X、Y 值 我们
8、知道,触摸屏根据向,分为 X 轴和 Y 轴两个部分,通过读取 X 轴和 Y 轴的 数据,我们就可以知道触摸屏触摸的位置了,就像数学上的,知道了 x 坐标和 y 坐标, 那么就可以确定在坐标轴上个点的位置。如何读取 XPT2046 的数据呢?接下来我们来看个时序图:8 位总线接, DCLK 时钟延迟,24 时钟周期转换时序,XPT2046 完成个完整的转换需要 24 个串时钟,也就是需要 3 个字节的 SPI 时 钟。对照上图,XPT2046 前 8 个串时钟,是接收 1 个字节的转换命令,接收到转换 命令了之后,然后使 1 个串时钟的时间来完成数据转换(当然在编写程序的时候, 为了得到精确的数
9、据,你可以适当的延时下),然后返回 12 个字节长度(12 个字节 长度也计时 12 个串时钟)的转换结果。然后最后 3 个串时钟返回三个效数据。所以读取个完整转换过程为:1.发送 1 个 8 字节的控制命令2.在这可以延时下,如果你 SPI 时钟周期 XPT2046 转换周期慢许多,不延时也可以。3.读取 2 个字节的返回数据。4.进数据处理。也就是丢弃最后读取到的 3 位数据。 我们需要读取两个数据,个 X 轴数据和个 Y 轴数据,所以我们这需要两个控制命令。个完整的控制命令的结构为:从上图,我们可以得到两个命令,读取 X 轴的命令为:0 xD0。读取 Y 轴的命令 为:0 x90。程序实
10、现为: : cmd :选择要读取是X 轴还是Y 轴的命令: None: 读取到的物理坐标值/* 读取TOUCH_READ_TIMES 次触摸值*/for(i=0; i= 3; TOUCH_CS_SET;for(i=0; i(TOUCH_READ_TIMES - 1); i+)for(j=i+1; jtouch_read_times ; j+)/* 采样值从到排序排序*/if(readValuei readValuej)value = readValuei; readValuei = readValuej; readValuej = value;/* 去掉最值,去掉最值,求平均值*/j = TOUCH_READ_TIMES - 1;totalValue = 0;for(i=1; i yValue2)else*yValue = yValue1 - yValue2;*yValue = yValue2 - yValue1;/* 判断采样差值是否在可控范围内*/if(*x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026工银澳门校园招聘备考题库含答案详解(综合卷)
- 2026广东佛山市高明国盈市政工程建设有限公司第一期招聘3人备考题库及完整答案详解一套
- 2026“才聚齐鲁 成就未来”山东土地城乡融合发展集团有限公司社会招聘2人备考题库含答案详解(完整版)
- 2026中盐舞阳盐化有限公司招聘4人备考题库含答案详解(b卷)
- 2026四川创锦发展控股集团有限公司招聘项目负责人的1人备考题库及完整答案详解1套
- 2026浙江宁波东方海纳人力资源服务有限公司招聘6人备考题库及1套完整答案详解
- 2026天津城投集团安泊科技有限公司招聘1人备考题库含答案详解(精练)
- 2026年4月广西百色市田阳区城镇公益性岗位人员招聘3人备考题库及答案详解(夺冠系列)
- 2026山东济宁市兖州区城市社区专职工作者招聘50人备考题库附答案详解(b卷)
- 2026浙江温州市苍南县人才发展有限公司招聘市场化工作人员1人备考题库及1套完整答案详解
- 2026年超星尔雅学习通《艺术美学》章节考试题库含答案详解【培优A卷】
- 2026福建龙岩新罗区西陂社区卫生服务中心招聘非在编工作人员5人笔试备考题库及答案解析
- 2026年宁夏财经职业技术学院单招职业技能考试题库及参考答案详解1套
- 内部控制分事行权制度
- 医生值班交接班制度
- 快乐体验式课件生活中的快乐
- 2025山东青岛排水有限公司员工招聘3人笔试参考题库附带答案详解
- 桩基施工图纸审核方案
- 职业技能考评员培训课件
- 2025年长沙环境保护职业技术学院辅导员招聘备考题库附答案
- 我的家乡黎城
评论
0/150
提交评论