STM32——触摸屏实验-电阻型触摸屏-M4

四线电阻屏工作原理:

电阻屏的主要部分是一块与显示屏表面配合非常好的电阻薄膜屏,这是一种多层的复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层,上面再盖有一层外表硬化处理、光滑防刮的塑料层,它的内表面也涂有一层透明导电层,在两电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘。当手指触摸屏幕时,平常绝缘的两层导电层在触摸点位置就有了一个接触,控制器侦测到这个接通之后,其中一面导电层接通y轴方向的5V均匀电压场,另一导电层将接触点的电压引至控制卡进行A/D转换,得到电压值后与5V相比即可得到触摸点的y轴坐标,同理得出x轴得坐标。

LCDx=xoff+xfac*Px;线性方程,相当于y=kx+b,其中LCDx=y,xoff=b,xfac=k,Px=x

LCDy=yoffy+fac*Py;线性方程,相当于y=kx+b,其中LCDy=y,yoffy=b,fac=k,Py=y

触摸屏程序注意事项:

为什么需要校准?确定电压和坐标之间的关系

校准参数保存在哪里?保存在EEPROM(断电也可保存),每次重新使电系统初始化后读出来这个参数即可。

电阻屏感应触摸后输出两个方向的电压,根据电压值来判断触摸点,而且还需要一个特定的触摸屏AD转换芯片来转换。

XPT2046

XPT2046是一款4导线制触摸屏控制器,内含12位分辨率125KHz转换速率逐步逼近型A/D转换器。XPT2046支持从1.5V到5.25V的低电压I/O接口。XPT2046能通过执行两次A/D转换查出被按的屏幕位置,除此之外,还可以测量加在触摸屏上的压力。内部自带2.5V参考电压可以作为辅助输入、温度测量和电池检测模式之用,电池监测的电压范围可以从0V到6V。而且XPT2046片内集成有一个温度传感器。

XPT2046数字接口

1、前8个时钟通过DIN引脚输入控制字节(命令字)

2、转换器收到有关下次转换的足够信息后,接着根据获得的信息设置输入多路选择器和参考源输入,并进入采样模式。

3、三个多时钟之后(等待的时间),控制字节设置完成,转换器进入转换模式。

4、接着12个时钟周期,将完成真正的AD转换。

5、如果度量比率转换方式(SER/_DRR=0),驱动器在转换过程中将一直工作,第13个时钟将输出转换的最后一位,剩下三个时钟完成转换器忽略的最后字节。

XPT2046命令字(控制字节):

u8 CMD_RDX=0XD0;//读取X轴坐标命令

u8 CMD_RDY=0X90;//读取Y轴坐标命令

0XD0: 1  1  0  1  0  0  0  0

0X90:  1  0  0  1  0  0  0  0

//触摸屏控制器,结构体用来选择电容触摸屏还是电阻触摸屏
typedef struct
{
  u8 (*init)(void);
  u8 (*scan)(u8);
  void (*adjust)(void);
  u16 x[CT_MAX_TOUCH];//保存坐标
  u16 y[CT_MAX_TOUCH];
  u8 sta;//笔的状态
  float xfac;//一次线性方程的变量
  float yfac;
  short xoff;
  short yoff;
  u8 touchtype;//确定是电阻屏还是电容屏,b7:0是电阻屏  b7:1是电容屏
}_m_tp_dev;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值