接下来,我们就需要用串口助手来验证一下,我们新建的DGUS工程有没有问题了,首先,我们还是从最简单的入手吧,这里,最简单的自然莫过于“按键返回”控件了,那么我们尝试下从Y0一直按到Y5,看下串口助手会返回什么:
我们先来分析一下第一帧数据:5A A5 06 83 00 20 01 00 01,根据迪文DGUS指令说明中提到的,我们可以清楚地知道,在这一帧数据中:
5A A5为数据帧的帧头;06为数据长度,即:从该为开始后面数据的个数;83为指令;00 20 为变量的地址;01 为从地址0x0020开始,返回的数据个数;00 01为变量的值
再回想上一讲我们建工程时定义的“按键返回”触控变量的地址以及键值,我们就很容易理解串口返回的这几串数据意义了,也就是说,当我们收到5A A5 06 83 00 20 01 00 01这串数据时,我们就知道是Y0按下了;当我们收到5A A5 06 83 00 20 01 00 02这串数据时,就知道是Y1按下……依次,我们就能识别到某一时刻,触摸屏上的那个按键被按下了。
接下来,我们继续来学习一下,如何往DGUS屏中的“数据变量显示”控件中写数据。这个地方就需要用到了DGUS屏的82指令—写数据存储区指令。我们直接看下《迪文DGUS指令说明》中的介绍吧:
相信看到这里,大家应该很明白了,比如,我要往地址为0x0010的“定时闪烁”数据变量显示控件中写一个数字“1”,那么我们只需要给对触摸屏发送指令:5A A5 05 82 00 10 00 01就可以了,同样,我们打开串口助手,将波特率什么的都设置好,然后再发送区输入指令:5A A5 05 82 00 10 00 01,注意,这里发送的所有数据都是十六进制数。
指令发送完成后,我们可以看下触摸屏上地址为0x0010这个变量值是不是就真的会显示为1呢?
纳尼?说的好“1”呢?怎么会变成65536?什么鬼?顿时心里一阵纳闷有木有?纳闷就对了,是不是大家都忘记了之前我们定义这个变量的数据类型的时候选择的是“无符号长整数(4字节)”了?那么就意味着,他在存储区中实际上是占了两个地址,即:0x0010和0x0011,不信的话,读者可以自己尝试一下,先往0x0010写个0,然后再往0x0011写个1,看下触摸屏上是不是就会显示1了呢?答案是肯定的!