C#编程基础:简单实现上位机和威纶触摸屏双向串口数据交换
前面的课程中我们已经简单实现了PC利用串口向威纶通触摸屏中写入数据。今天我们来试试如何从威纶通触摸屏向PC传输数据。首先在窗体上创建三个文本框,用来显示上传的数据。为了和前面的数据区分,我们分别标示为PC->HMI 和HMI->PC.
在串口接收事件中加入数据处理程序。将触摸屏上传的数据数组组合到一起形成三个数,并且在窗体上显示。将数组里的四个元素组成一个整数可以采用移位后相加的形式,也可采用乘倍数后相加的形式。左移8位和*256的结果是一样的。
同样的思路,在触摸屏上也添加三个数值元件,标示清楚数据传输方向。
然后在宏指令里添加数据发送程序。新建一个宏指令,和接收部分的宏指令分开。
在发送宏指令里添加如下程序:这里需要将三个数值拆分成数组的四个元素,然后共同组成一个12位元素的数组。传输到PC上后再反向解析出来。
数据拆分可以采用右移的方式拆分,也可以采用除和求余的方法拆分。例如 257这个数,十六进制是0x101,可以分为 0x100 +0x01, 将0x100右移8位,变成0x01,数组就变成了 a[0]=0x01 a[1]=0x01,然后到PC上先将a[0]左移8位,再和a[1]相加即可还原。
如果采用除法和求余拆分,则是先将 257除以256,所得的数值放在A[0]中,然后用256对257求余,结果放入a[1]中,得到的结果还是a[0]=0x01 a[1]=0x01。
最终得到上面的结果。这里的程序还是有些小问题,大家可以看看源码找一下错误,看看谁能发现问题所在!