【全志T113-S3_100ask】16-1 linux系统驱动四线电阻屏(tpadc、tslib)
创始人
2024-02-29 08:38:32

【全志T113-S3_100ask】16-1 linux系统使用TPADC驱动四线电阻屏(rtp、tslib)

  • (一)背景
  • (二)焊接鬼才
  • (三)解析input上报事件
  • (四)C语言解析input上报事件
  • (五)tslib的使用
    • 1、tslib框架
    • 2、tslib命令行测试
      • 1)ts_calibrate 触摸屏校准
      • 2)ts_print 坐标打印
      • 3)ts_test 涂鸦
  • (六)后记

(一)背景

上一小节,使用了内核驱动了 ili9341 ,但是上面的电阻屏并还没有驱动,查阅芯片数据手册,该芯片支持驱动四线触摸屏
在这里插入图片描述
且buildroot已经支持,官方设备树已经配置好。

	rtp:rtp@2009c00 {compatible = "allwinner,sun8i-ts";reg = <0x0 0x02009c00 0x0 0x400>;clocks = <&ccu CLK_TPADC>, <&ccu CLK_BUS_TPADC>;clock-names = "mod", "bus";clock-frequency = <1000000>;resets = <&ccu RST_BUS_TPADC>;interrupts = ;};&rtp {allwinner,tp-sensitive-adjust = <0xf>;allwinner,filter-type = <0x1>;allwinner,ts-attached;status = "okay";};

触摸屏设备就在 /dev/input/event1
hexdump测试一下
在这里插入图片描述

触摸屏没接当然没数据啦

(二)焊接鬼才

那就手动把触摸屏的四根线焊上去吧(别接错了)
1、先把芯片拆下来把,这么小的引脚好像不好焊接。。。。。。(能画pcb的老老实实画,我这是贪玩)

在这里插入图片描述
然后把杜邦线焊上去
在这里插入图片描述
嗯,看起来没短路,然后接到核心板的对应引脚上
在这里插入图片描述

hexdump测试一下
在这里插入图片描述此此时按下触摸屏就会有数据,但是这些数据似乎看不懂

(三)解析input上报事件

以下图片来源于100ask
在这里插入图片描述
其中,如果type为0001,则为x轴,0003则为y轴,value为对应的值

(四)C语言解析input上报事件

#include "stdio.h"
#include "unistd.h"
#include "sys/types.h"
#include "sys/stat.h"
#include "fcntl.h"
#include "stdlib.h"
#include "string.h"
#include /* 定义按键值 */
#define KEY0VALUE 0XF0
#define INVAKEY 0X00typedef struct posi
{int x;int y;
};int main(int argc, char *argv[])
{struct input_event in_ev = {0};int fd, ret;int keyvalue;struct posi xxyy = {0};/* 打开key驱动 */fd = open("/dev/input/event1", O_RDWR);if (fd < 0){perror("open /dev/input/event1");return -1;}while (1) /* 循环读取数据 */{if (sizeof(struct input_event) != read(fd, &in_ev, sizeof(struct input_event))){perror("read error");exit(-1);}if (EV_ABS == in_ev.type) // 触摸屏事件{if (in_ev.code == 1)xxyy.x = in_ev.value;if (in_ev.code == 0)xxyy.y = in_ev.value;}if (xxyy.x != 0 && xxyy.y != 0){printf("x: %d  y: %d\n", xxyy.x, xxyy.y);xxyy.x = 0;xxyy.y = 0;}}ret = close(fd); /* 关闭文件 */if (ret < 0){printf("file %s close failed!\r\n", argv[1]);return -1;}return 0;
}
  • makefile 记得链接 lts
    下面点击屏幕的四个点进行坐标获取
    在这里插入图片描述
    但是实际上这个是我们采集的adc的值,原则上我们需要将其转化为我们的坐标值
    以下内容是参考借鉴的思路
    在这里插入图片描述
    其实实际上并没有这么简单,如果用过电阻触摸屏手机的都知道,有时候点击屏幕并不准了,需要进行校准操作什么的。
    为简单了解过程,下面直接使用tslib进行实验

(五)tslib的使用

1、tslib框架

参考100ask
tslib的主要代码如图所示
在这里插入图片描述

  • 核心在于“plugins”目录里的“插件”,或称为“module”。这个目录下的每个文件都是一个module,每个module都提供2个函数:read、read_mt,前者用于读取单点触摸屏的数据,后者用于读取多点触摸屏的数据。
  • 要分析tslib的框架,先看看示例程序怎么使用,我们参考ts_test.c和ts_test_mt.c,前者用于一般触摸屏(比如电阻屏、单点电容屏),后者用于多点触摸屏。
  • 一个图就可以弄清楚tslib的框架:
    在这里插入图片描述
    好吧,我没看懂。。。直接实操测试吧

2、tslib命令行测试

记得在buildroot开启tslib

Target packages  --->Libraries  --->Hardware handling  --->[*] tslib

先配置环境

export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0

其中:

  • export TSLIB_TSDEVICE=/dev/input/event1 # 触摸屏设备文件
  • export TSLIB_CALIBFILE=/etc/pointercal # 指定触摸屏校准文件pintercal的存放位置
  • export TSLIB_CONFFILE=/etc/ts.conf # tslib模块配置文件
  • export TSLIB_PLUGINDIR=/usr/lib/ts/ # tslib插件库目录
  • export TSLIB_CONSOLEDEVICE=none # 控制台设置
  • export TSLIB_FBDEVICE=/dev/fb0 # framebuffer设备文件

1)ts_calibrate 触摸屏校准

在这里插入图片描述

2)ts_print 坐标打印

从一个角落滑到另一个角落,与[0,0]—>[240,320]非常接近!
在这里插入图片描述

3)ts_test 涂鸦

在这里插入图片描述

(六)后记

1、感觉触摸屏input上报的时间很久,感觉很久才触发一次坐标值,是tpadc的配置有问题吗?
2、下次使用xpt2046或者ns2009/ns2016测试一下是否会流畅很多(可惜我的芯片拆掉不知道扔哪去了)
3、多动手折腾一下【狗头】
4、如何手写坐标校准呢?如何存储呢?

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...