1.什么是串口触摸屏

触摸屏是工业控制上很常见的人机交互部件,很多设备、系统都在使用它,它至少有两个功能:显示,触摸控制。

串口触摸屏是采用串行数据通信协议进行数据交换的触摸屏,具有简单、可靠、易于操作的特点。

2.怎么进行触屏开发

2.1 关键词定义和工作原理

页面:一个串口触摸屏一般可以制作多个页面,一个页面对应着一幅画面,每个页面需要编号。

控件:串口触摸屏上大部分显示的图形和文字都可以当作控件来处理,如触摸屏上的一个按钮、一个文本框、一个输入框、一个进度条等,都可以当作一个控件。

工作原理:

触摸屏上控件的绝大部分属性和参数都可以通过接收到的串口指令来控制。如将界面里一个进度条命名为j0,那么通过串口向触摸屏发送字符串指令“j0.val=80”,再加上结束符,那么这个进度条就会达到80%的位置。

用户对触摸屏上绝大部分控件的动作,都能触发触摸屏串口输出一串数据。例如,用户点击触摸屏上的按键或者选中了一个多选框等,都能令触摸屏的串口输出一段对应的数据,这个可以用于控制。

一般触摸屏都会配套一个开发软件,在开发软件上做界面,拖拽放置需要用到的控件,如按键、文本框等,设置好控件的属性和事件代码。触摸屏一般需要和控制器配套使用,在控制器中需要编程,接收触摸屏来的数据和通过串口向触摸屏发送数据改变控件的参数或者属性。

2.2开发流程是怎样的

串口触摸屏的开发流程一般是这样的:

1. 明确需求:明确需要显示和控制的参数、界面需求等;

2. 熟悉资料:在开发过程中,根据触屏的用户手册确定接线方式、通信协议,包括波特率、数据位、校验位、指令等;

3. GUI设计:在开发软件上拖拽、绘制图形(控件),进行GUI设计;

4. 将设计好的GUI下载到触摸屏里。一般触摸屏会配备专用的下载线用于下载。

5. 控制器编程:在控制器编程,将对应的参数传输到触摸屏的指定页面的指定控件,或者接收来自触摸屏的指令执行相应的动作;

6. 调试:根据预设的功能需求逐一检查各个任务指标,修改,直到达到要求。

2.3 连接线路介绍

接线很简单,一般触摸屏上就四根线:

TX:接控制器的RX端;

RX:接控制器的TX端;

GND:接直流电源负极;

VCC:接直流电源正极5V。

注意:接线方式在不同的产品可能会不同,根据产品手册接线。

2.4 触摸屏上的GUI设计方法

在开发软件上做好界面(GUI),然后利用专用的数据线将在开发软件上做好的界面下载到触摸屏里面即可。

在开发软件上的界面开发类似于在电脑上写软件,如与VB、C#等开发软件的过程类似,包括:

 在开发软件中新建或添加页面,为页面编号。

 在软件的界面左边有个控件栏,里面包含了常用的控件,如显示框、文本输入框、按钮、指示灯、曲线控件等。点击需要的控件,按住拖动放置到中间工作区的合适位置,设置属性,控件的常见属性包括控件的颜色、字体、字号、长宽高等;

 编写事件代码。控件的事件表示对控件进行了一个什么操作,之后让控件干什么,例如按了一下按钮之后让按钮控件通过触摸屏的串口发送出一串数据。

2.5 控制器编程

控制器一般可以是PLC、单片机、FPGA等支持串口通信的处理器,在这里面一般需要写入程序,以实现与触摸屏的数据交换。一般需要完成两个工作:

 向触摸屏上的某个页面中某个控件发送数据,以改变控件的参数或者属性;

向某个控件发送数据首先得判断当前处于哪个页面,或者跳转到指定的页面。控制器向触摸屏发送数据的一般格式为:控件名.属性值=“需要显示的字符”+结束符。数据发送以串口发送字符串的形式进行。

如在开发软件上定义了一个指针控件z0,如果要改变指针的指向到90%,那么可以让控制器的串口发送字符串数据:z0.val=90,再加上结束符(此触摸屏的结束符为0XFF 0XFF 0XFF),触摸屏接收到指令后,就会将指针拨到90%的位置。

 接收触摸屏上某个控件的事件动作数据,执行相应的动作。

当用户用手指在触摸屏上触摸某一个控件时,触摸屏的串口会发送出一串数据,一般格式为:帧头+页面号+控件号+动作号+结束符。这个数据格式根据不同的触摸屏会有不同的要求,需查看使用手册,一般的触摸屏也允许开发者自定义事件的动作。

例如,当用户触摸某个按键时,触摸屏会通过串口发送一串数据:0X65+页面 ID+按键 ID+触摸事件+结束符,如字符串数据为0X65 0X00 0X01 0X01 0XFF 0XFF 0XFF,表示页面0中的按键1按键按下,其中0X65是按键的帧头,0XFF 0XFF 0XFF是结束符。控制器接收到串口数据后,与预设的数据进行对比,如果匹配正确,再令相关设备执行动作即可,这个可以在串口中断里面进行处理。

一般的控制器都有串口,按照控制器的开发手册编写串口收发数据的代码即可。

小结

串口触摸屏在工控上的应用是很普遍的,也比较简单可靠,但是在使用时应当注意以下几点:

 不同触摸屏的使用方法不尽相同。在控制器的程序中,接线方式、串口的通信协议、指令格式等要根据具体的触摸屏手册来编写,让触摸屏与控制器的正确匹配。

 为了通信的可靠,应当做好通信的校验。

 识别很重要,包括对页面的识别和对不同控件的识别。

arduino向串口发送数据时掉包_[技术]清楚简单,一种串口触摸屏的开发流程和方法介绍...相关推荐

  1. C#旅程——串口发送数据

    串口发送数据时可以一个byte一个byte的发送数据,也可以一次性丢出,分多次丢出的话会导致一段数据被分成多段发出,中间的延时可能会超过2ms,与FW通讯时会出现异常. public void Wri ...

  2. STM32F0 HAL库软件模拟串口发送数据

    试验STM32F0官方提供的例程的时候,希望看到程序中某些变量的值,但是程序中往往没有串口发送部分,自己加又非常麻烦. 而点亮LED的程序基本上每个例程都有.所以用点亮LED引脚模拟串口发送数据就很方 ...

  3. 关于proteus中串口发送数据与实际不符的问题(如发00h,收80h)

    工程实训要用到串口,51单片机,串口工作方式一,只发不接受. 在proteus中用VIRTUAL TERMINAL(虚拟终端)监视串口发送数据. 现象:不论是用虚拟终端还是串口助手,接受的数据比实际发 ...

  4. MJKDZ PS2手柄控制OskarBot小车(一):Arduino串口发送数据

    MJKDZ PS2手柄控制OskarBot小车(一):Arduino串口发送数据 [目录] - 1.无线通信模块设置 - 1.1 设置参数 - 1.2 调试步骤 - 2.按键与通信格式 - 2.1 P ...

  5. python树莓派串口通信实例_树莓派通过串口发送数据

    可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据.树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践.这篇文章教大家如果通过树莓派的串口发送数据. ...

  6. java串口发送16进制_串口发送数据——字符串发送与十六进制发送的区别

    在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 0000 0001(2)来表示.我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照 ...

  7. java串口发送十六进制数,本文实例为大家分享了Java实现串口通信的具体代码,供大家参考,具体内容如下1.介绍使用Java实现的串口通信程序,支持十六进制数据的发送与接收。 源码:...

    本文实例为大家分享了Java实现串口通信的具体代码,供大家参考,具体内容如下 1.介绍 使用Java实现的串口通信程序,支持十六进制数据的发送与接收. 源码:SerialPortDemo 效果图如下: ...

  8. C#.NET的界面编程--实例4:使用串口发送数据

    目录 一.[程序实现] 步骤1.先设计窗口,把各种需要的控制布局在窗口内 步骤2.制定应用的功能方案 步骤3.制定后台逻辑 二.[运行效果] 本节主要介绍了c# 使用线程对串口serialPort进行 ...

  9. stm32串口发送数据的配置,以及通过串口发送结构体数组总是多一个00字节的问题

    最近用stm32编写串口发送程序,在硬件方面需要做如下准备: 1.stm32开发板,这里我的是stm32f030f4p4开发板,单片机的串口发送的引脚为PA9-TX,PA10-RX. 2.为了调试串口 ...

最新文章

  1. 面试彩蛋2:分别用循环和递归实现下列函数
  2. java中的强制类型转换:int和byte
  3. (原创)7-1 银行业务队列简单模拟 (30 分)
  4. 395. Longest Substring with At Least K Repeating Characters
  5. 对CMMI3的学习和思考
  6. 微软Connect(); 2017大会梳理:Azure、数据、AI开发工具
  7. IDEA 2021.3 重磅发布!远程开发 (Beta) 、机器学习、故障自检、体验优化......
  8. windows中的凭据管理
  9. UNIX环境高级编程-#include “apue.h“
  10. win10强行自定义分辨率(笔记本win10强行自定义分辨率)
  11. HTML和CSS仿唯品会首页,ecshop仿唯品会2014全模板带团购品牌特卖
  12. 【无标题】2023速卖通开店教程,入驻图文讲解!
  13. windows企微应用双开/多开
  14. 关于卷积核大小的论文与思路
  15. C语言中 编译预处理命令的作用有哪些,C语言系列——预处理命令
  16. MYSQL中无法进行删除,更新解决方法
  17. 【An electroencephalographic signature predicts antidepressant response in major depression-笔记】
  18. scal实现工厂方法模式
  19. linux如何开放端口和关闭端口
  20. python装b代码_Python十大装B语法

热门文章

  1. 利用切片操作,实现一个trim()函数,去除字符串首尾的空格,不调用str的strip()方法:
  2. PIC单片机 电容式触摸检测
  3. 用VS 2008开发WCF(一)——最快速的WCF入门
  4. Python学习笔记1环境搭建
  5. 缓冲区溢出-基本ROP-ret2syscall
  6. XML::Simple与Data::Dumper在Perl中的使用
  7. 网站压力测试工具webbench简介、安装、使用
  8. 张旭豪:外卖概念的三点进化
  9. 数据库连接客户端使用(db2,oracle,mysql)
  10. 网上整理的jQuery插件开发教程