关于STM32应用触摸屏校准原理的总结
应用场景
发现以前写的有点模糊不清,先来普及一下应用场景吧,这篇博文是针对电阻屏的第一次校准而写的,应用场景图示:
##第一步,得到屏幕上 4 个点位置如下图
变量解释:
pos_temp[0-3][2]: [0-3] 依次 (x1,y1, - x4,y4,) [2] = 0, x 1, y 首先读取这四个点的AD转换值,然后由两点间的距离公式 D=Sqrt[(x1-x2)^2+(y1-y2)^2]依次求出 d1,d2,d3,d4,以及相应的对角线距离,判断是否 d1==d2 ,d3==d4,以及对角线相等,
如果相等则进行下一步,不相等则重新取值。
##第二步,利用如下程序计算校准参数
// (液晶理论宽度-40)/(x2-x1) 即 液晶理论宽度点阵值/AD测量值 = 每AD值对应多少点阵
xfac = (float) (lcddev.width-40) / (pos_temp[1][0]-pos_temp[0][0]); // 得到 xfac// 液晶理论宽度点阵值 - 每 AD 值对应多少点阵 * (x1+x2) = 左边 20 点阵的测试误差
// 再除 2 是因为 x1+x2 将左边 20 点阵加了两次,误差也 double 了
xoff = (lcddev.width-tp_dev.xfac*(pos_temp[1][0]+pos_temp[0][0]))/2; // 得到 xoff// (液晶理论高度-40)/(y2-y1) 即 液晶理论高度点阵值/AD测量值 =每AD值对应多少点阵
yfac = (float)(lcddev.height-40)/(pos_temp[2][1]-pos_temp[0][1]); // 得到 yfac// 液晶理论宽度点阵值 - 每 AD 值对应多少点阵 * (y3+y1) = 左边 20 点阵的测试误差
// 再除 2 是因为 x1+x2 将左边 20 点阵加了两次,误差也 double 了
yoff = (lcddev.height-tp_dev.yfac*(pos_temp[2][1]+pos_temp[0][1]))/2; // 得到yoff
##第三步,应用校准参数
每次读到相应的AD值时,转换为相应的触摸点阵位置屏幕坐标点 = 测量AD值 * 每AD对应点阵数 + 误差x = xfac * x的AD值 + xoff; //将结果转换为屏幕坐标
y = yfac * y的AD值 + yoff;
关于STM32应用触摸屏校准原理的总结相关推荐
- Android电阻触摸屏校准
首先电阻屏为什么需要校准,这是电气方面的知识,我也不懂,这里就不说了,这里主要讲讲自己在项目中是怎么通过应用程序来实现校准的,好记性不如烂笔头这里有一篇讲解触摸屏校准原理和优化的文章,道客巴巴上的,先 ...
- linux内核关闭触摸屏校准,触摸屏校正原理
1,触摸屏校准通用方法 主要采用以下公式,实现触摸屏校正,其中XL, YL是显示屏坐标,XT, YT是触摸屏坐标, XL = XT*A+YT*B+C; YL = XT*D+YT*E+F; 公式( ...
- 基于STM32的触摸屏学习笔记
本文共有三个内容:一.电阻触摸屏的原理:二.XPT2046的控制字与数字接口:三.程序源码讲解(参考正点原子的代码) 一.电阻触摸屏的原理,上图: 图上的文字介绍了触摸的原理,下面总结一下触摸的原理: ...
- 第018课 ADC和触摸屏硬件原理详解及裸机编程
第001节_ADC硬件原理 模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件. 通常的模数转换器是把经过与标准量比较处理后的模拟量转换成以二进制数值表示的离散信号 ...
- linux蜂鸣器控制实验,【Linux公开课】蜂鸣器使用、LCD背光控制、触摸屏校准、GPIO操作...
摘要为方便使用蜂鸣器,系统为蜂鸣器提供类似LED的操作接口,对应的操作文件是/sys/class/leds/beep/brightness.写入1使蜂鸣器鸣叫,写入0停止鸣叫- 8.12 蜂鸣器使用 ...
- 基于 mini2440 电阻式触摸屏:电阻式触摸屏工作原理
========================================================== 开发环境 编译系统 :fedora9 编译器 :arm-linux-4.4.3 主 ...
- STM32+MCGS触摸屏四通道数据采集
1.想做一个数据采集系统,然后将数据存储起来,方便查看选择了STM32+MCGS触摸屏. 2.原理图绘制,选择立创的绘图软件,简单方面.用到了ADC采集模块与RS485通讯. 3.PCB ...
- 更改触摸屏校准程序界面提示文字
BSP中提供的触摸屏校准程序在个别设备上用起来可能不太适合,比如说我们的设备屏幕宽度只有 240pixels,会有部分字符超出屏幕外侧,原以为这是BSP的提供的程序,无源码没办法修改,这两天才知道原来 ...
- STM32 IAP 在线升级原理全解析
点击左上角的"关注",定期更新 STM32 最新资讯,总有你想要的信息! STM32 IAP 在线升级原理全解析 1. 什么是 IAP? IAP(In-Application ...
最新文章
- oracle之控制文件恢复
- Windows安装Zookeeper和Dubbo(单机版本)
- Ubuntu 11.04上搭建Android开发环境
- OpenCV Gunnar Farneback的密集光流算法(附完整代码)
- 你与弄懂promise之间可能只差这篇文章(二)
- python分割字符串输出_python字符串分割
- linux nginx安装
- pandas分组计算平均值_python – 如何计算在Pandas中另一列上分组的平均值
- vue中v-model的使用
- Bucharest, Romania 2013 G Points DP
- 基于python的图书管理系统设计与实现论文_图书馆管理系统的设计与实现毕业论文...
- 数据结构链表(C语言实现)
- 微信小程序之文本内的p标签去除
- 学术会议海报制作和参考
- [NLP]OpenNLP介绍
- 数字化底层逻辑揭秘!探寻地产工程行业发展新范式
- 【Java】有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完?
- 多线程总结--小码哥java
- php数组倒插,phpComasy v0.7.9
- 将wav音频文件频谱分析后映射到钢琴琴键上(类似audio to midi功能)
热门文章
- 远程连接工具Telnet、SSH及Dropbear
- 计算机毕业设计ssm康复系统4y703系统+程序+源码+lw+远程部署
- 关于 django.db.migrations.exceptions.InconsistentMigrationHistory
- 个人笔记--二进制/十进制的转换公式
- 基于数字图像处理的杂草识别
- 酷酷的爆炸效果_Python海龟画图不仅仅是画图
- 《系统思维》思维导图,掌握全局思维和整体思维
- Python简单练习2
- 2.3 MATLAB求解方程
- C++实现99乘法表