• 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

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

  • 相关阅读:
    word-doc和docx区别
    【CSS】CSS入门笔记第三弹~
    神经网络中的参数量和FLOPs的计算
    Java循环对比:传统for循环、增强型for循环和forEach循环
    windows模拟触摸
    【linux】服务器安装及卸载pycharm社区版教程
    Golang 语言接口的定义与实现
    洛谷 P1343 地震逃生(最大流dinic算法)
    剑指 Offer II 062. 实现前缀树
    杰理之CMD_SET_BT_ADDR【篇】
  • 原文地址:https://blog.csdn.net/weixin_62584795/article/details/126788913