当前位置: 首页 > news >正文

提供秦皇岛网站建设价格唐山网站建设冀icp备

提供秦皇岛网站建设价格,唐山网站建设冀icp备,googleplay官网,新网域名转出【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 所谓的触摸屏,其实就是在普通的lcd屏幕之上,再加一层屏而已。这个屏是透明的,这样客户就可以看到下面lcd屏幕的…

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        所谓的触摸屏,其实就是在普通的lcd屏幕之上,再加一层屏而已。这个屏是透明的,这样客户就可以看到下面lcd屏幕的内容,另外一方面,通过触摸信号,还可以实现人和机器的自然交互,这是一种非常好的体验形式。像早期的按键手机,大家用着其实还行,只不过后来转成智能手机,只剩下一个屏幕之后,就一股脑全转成触摸屏手机了。

1、查看lcd电路图

         之前我们说过这个lcd 40 pin的原理图。上次分析的时候,卖了一个关子。就是这个TPX1、TPY1、TPX2、TPY2,四根信号线。这四根线并没有直接连接到soc上面,而是先连接到ns2009,然后再通过i2c的形式连接到soc上面。

         简单浏览下,发现TP信号连接到了2、3、4、5号pin上面,soc需要获取触摸信息的话,通过SCK & SDA就可以,当然这里还有一个PENIRQ,理论上是可以通过中断的形式获取触摸信息的。但是,实际看linux驱动代码的话,发现还是定时轮询的形式。

        此外选择lcd屏幕的时候,一定要选择带有触摸屏的那种,千万要和商家沟通清楚。不然白白浪费了自己的时间。

2、设备树

        上面分析电路得出结论,soc是通过i2c获取按键信息的,那么可以直接查找sun8i-v3s-licheepi-zero.dts,

&i2c0 {status = "okay";ns2009: ns2009@48 {compatible = "nsiway,ns2009";reg = <0x48>;};
};

        引脚信息可以在sun8i-v3s.dtsi查找到,分别是PB6、PB7

			i2c0_pins: i2c0 {pins = "PB6", "PB7";function = "i2c0";};

        更详细的寄存器、中断、时钟信息也可以在这个文件的后半部分找到,

		i2c0: i2c@01c2ac00 {compatible = "allwinner,sun6i-a31-i2c";reg = <0x01c2ac00 0x400>;interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;clocks = <&ccu CLK_BUS_I2C0>;resets = <&ccu RST_BUS_I2C0>;pinctrl-names = "default";pinctrl-0 = <&i2c0_pins>;status = "disabled";#address-cells = <1>;#size-cells = <0>;};

        上面说的这些内容都是默认配置好的,只要是linux 4.14.y内核,就不需要自己再动手配置一遍了。

3、查看驱动代码

        因为这里使用到了i2c协议,也使用到了ns2009芯片,所以只需要在drivers/input/touchscreen下面查找下,有没有类似于ns2009的驱动就好。观察发现,果然有一个ns2009.c文件,里面内容也和我们想的差不多,

static const struct i2c_device_id ns2009_ts_id[] = {{ "ns2009", 0 },{ }
};
MODULE_DEVICE_TABLE(i2c, ns2009_ts_id);static struct i2c_driver ns2009_ts_driver = {.probe = ns2009_ts_probe,.id_table = ns2009_ts_id,.driver = {.name = NS2009_TS_NAME,},
};
module_i2c_driver(ns2009_ts_driver);

        这部分代码因为是包含在zImage里面的,因此也就不需要重新编译、重新烧入了。和其他驱动相比较,这算是很方便的一种情形。

4、下载、安装tslib库

        tslib基本就是触摸屏调试的一个标配。它不仅仅可以帮助我们对触摸屏做出一些参数标定,还可以用它做接口,做一些测试或者定制应用开发。首先,我们需要下载一个tslib代码,

https://github.com/libts/tslib/releases

        选择好版本之后,就可以拷贝到ubuntu虚拟机,准备用交叉编译工具开始编译,

mkdir __install
./configure -host=arm-linux-gnueabihf -prefix=$PWD/__install
make
make install

        编译安装好之后,所有的文件都被安装到__install目录下面。接下来要做的,就是把这些文件拷贝到sd卡的ext4系统上面去,

cp bin/* /media/feixiaoxing/64959927-1d53-4bb1-8102-d7c16fc29ade/bin/
cp lib/*.so* /media/feixiaoxing/64959927-1d53-4bb1-8102-d7c16fc29ade/lib/ -rfdv
cp lib/ts/ /media/feixiaoxing/64959927-1d53-4bb1-8102-d7c16fc29ade/lib/ -rfdv
cp etc/ts.conf /media/feixiaoxing/64959927-1d53-4bb1-8102-d7c16fc29ade/etc/

        自此,tslib就安装好了,可以准备测试了。

5、测试验证tslib

        测试验证之前,需要先配置一下环境变量,有几个参数需要设置下,

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

        第一个参数表示event设备节点的位置。如果ns2009驱动正常安装,肯定会有这个节点的。第二个参数表示配置文件的位置。第三个参数表示插件的位置。第四个参数表示标定参数保存的位置。第五个参数可以不设置,直接写成none。第六个参数表示屏幕节点的位置。

        当然测试的时候,别忘记点亮屏幕,屏幕不点亮啥也做不了,

echo 34 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio34/direction
echo 1 > /sys/class/gpio/gpio34/value

        首先,先用ts_calibrate做一下触摸屏的标定,

# ts_calibrate 
xres = 480, yres = 272

        不出意外,屏幕上可以看到这样的情形,

         有一个十字箭头的东西会依次出现在四个角落和中间位置,每点击依次,它就会跳到新的位置。五次都结束以后,标定就结束了,

# ts_calibrate 
xres = 480, yres = 272
[  113.404260] random: crng init done
Took 1 samples...
Top left : X =  534 Y = 1156
Took 3 samples...
Top right : X = 3496 Y = 1334
Took 2 samples...
Bot right : X = 3510 Y = 3270
Took 2 samples...
Bot left : X =  453 Y = 3075
Took 1 samples...
Center : X = 1963 Y = 2066
-15.522461 0.126093 0.002039
-46.474915 -0.005545 0.088761
Calibration constants: -1017280 8263 133 -3045780 -363 5817 65536 

        接下里就可以用ts_test开始测试了,

        测试有两种方式,一种是拖着十字到处移动,还有一种就是画图。如上图所示,这就是画图的测试方法,只不过我们写了两个汉字。不管是那种方式,需要先到对应的按钮选中一下。因为电阻屏反应没那么灵敏,等按下去的时候,时间多停留一会,直到按钮颜色变化之后,再开始测试。如果能写出自己想要的内容,基本表明驱动移植成功。

        串口方面,也可以看到这些打印信息,

# ts_test
1178.709275:    265     77    255
1178.748307:    265     77      0
1178.789301:    265     42    255
1178.829277:    508    283    255
1178.868270:    508    283      0
1179.549275:    268     15    255
1179.589293:    284     25    255
1179.629289:    297     38    255

http://www.yayakq.cn/news/728857/

相关文章:

  • 自贡住房和城乡建设厅网站wordpress客户端插件下载
  • 直播网站建设方案忘记了wordpress登录密码
  • 如何解决网站只收录首页的一些办法俄乌今天最新军事动态
  • 惠州seo网站管理西安做网站优化公司报价
  • 网站公司排行榜前十名网站开发制作软件
  • 做pvc卡片的交流网站网络游戏排行榜前十手游
  • 网站流量对比东莞网站建设 乐云践新
  • 深圳网站设计教程福田欧曼价格
  • 英文网站建设用哪种字体人与狗做的电影网站
  • 廊坊微信网站建设做带v头像的网站
  • 成都网站排名优化武威市市建设局网站建筑业管理
  • 访问不了网站目录中的网页网站建设价格是哪些方面决定的
  • 网站开发 问题 关键技术能用的手机网站
  • 网站备案需要具备什么条件seo培训班 有用吗
  • 国内人做韩国网站一般都卖什么手续上海崇明林业建设有限公司 网站
  • 长春网站建设网网站建设术语名词
  • 个人网站建设方案模板小红书推广网站
  • 太原企业建站模板郑州网站制作免费
  • 海淀做网站好的公司云主机服务器
  • 广州做网站 汉狮网络深圳网站建设排名
  • 网站推广 扬州湖北又出现3例
  • wordpress 制作企业站海口广告设计制作公司
  • 网站开发主要工作内容wordpress虎嗅网
  • 90设计网站创建时间官网设计报价
  • 什么是营销网站南京模板网站开发
  • 天津企业网站排名优化可以在线编程的网站
  • 定制开发app的注意事项搜索引擎优化的基本方法
  • 重庆做网站推广的公司seo排名平台
  • 聊城市建设局网站域名备案接入商查询
  • 搜点济南网站建设达州网站建设的公司