(八)WPF工程做上位机与彩屏(或单片机)进行串口通信、解决彩屏(或单片机)只能发送信息不能接受信息问题。

一、简介

        首先,介绍WPF工程做上位机之前。无法想像,做一件事情要多么细心、认真,并且要有条不紊的记录整个过程中遇到的问题。不然的话,你会发现,当你遇到问题遇到困难的时候,你根本无法解决,这时候,叫天天不应,叫地地不灵。你该怎么办呢?

       然后,你该养成良好的思维习惯、笔记习惯,不断学习。才能在困难中行走。

       最后,软件调试、硬件调试用到的收发系统:

二、WPF上位机与 大彩屏硬件通信

     1、WPF上位机(你随便上位下载一个串口助手,就是一个上位机了。当然,你可以在开源网页获取开源代码,以便作为WPF上位机):

        这里的发送指令,你只需把VisualTFT的指令助手中,即下面的代码指令,复制过来即可。这样上位机才知道要发给彩屏哪个页面ID以及哪个控件ID:

2、大彩屏硬件通信

硬件彩屏,请参考(虚拟彩屏与硬件彩屏,是等价的):

大彩屏幕 进行串口通信

★★★串口通信★★★ WPF工程做上位机,利用串口通信协议的方式,与大彩屏幕进行串口通信

3、硬件彩屏只能发,不能收来自电脑WPF的上位的信息(这里的上位机==串口助手软件

虚拟大彩屏的仿真,明明可以收发,但是换成了硬件大彩屏就不能收了。

虚拟大彩屏的仿真,明明可以收发,但是换成了硬件大彩屏就不能收了。

虚拟大彩屏的仿真,明明可以收发,但是换成了硬件大彩屏就不能收了。

这种问题怎么办么?这种问题类似于单片机与上位的通信中,单片机明明可以发,但是就不能收的问题。我们先回到彩屏问题吧,不要把心放在单片机了。

解决办法:

A串口助手<——>硬件彩屏

B串口助手<——>硬件彩屏

C串口助手<——>硬件彩屏

..........

无论是用什么助手,彩屏都只能发,不能收。说明串口硬件连接,这条路没有问题了(你可以用万用表排查)

那么问题出现在哪?

那么问题出现在哪?

那么问题出现在哪?

想想就知道,利用排除法得知,必然是硬件彩屏本身的问题、或者是硬件彩屏的接收部分程序有问题。

如果你的程序是正确的,并且单步验证过每条指令、每条数据的正确性,确保没有问题。并且硬件电路用万用表检验过,确实没有问题。

那么问题又出现在哪?

那么问题又出现在哪?

那么问题又出现在哪?

哎呀,那就是你下载到板子的程序有问题,极有可能是接收部分的代码损坏了。我重新下载后,就解决了该问题。

整体分析,看起来简单,但是你没做过,你又怎么知道问题出在哪一步呢?

整体分析,看起来简单,但是你没做过,你又怎么知道问题出在哪一步呢?

整体分析,看起来简单,但是你没做过,你又怎么知道问题出在哪一步呢?

好了,我们回到单片机,若是单片机遇到同样的问题,你可以这样排查,看看时钟、中断等等是否有问题。

三、注意高八位、第八位

谁的高八位,由是谁的低八位呢?

我从指令助手里面,得到了大彩屏收指令的保存地址方式:

于是,我把这些指令分离出来:

你注意到了紫色这部分了吗?好了,我现在用C#表示行的变量a:

 byte[] a = new byte[]{ 0x00 ,0x02 }

截图部分的指令:

  byte[] t1 = new byte[] {
                                   0xEE, 0xB1, 0x5B, 0x00, 0x02, 0x00, 0x05, 0x00, 0x02, 0x00,
                                   0x0C, 0xD0, 0xAD, 0xD2, 0xE9, 0x31, 0x3B, 0xC3, 0xFB, 0xB3,
                                   0xC6, 0x31, 0x3B, 0x00, 0x0C, 0xD0, 0xAD, 0xD2, 0xE9, 0x32,
                                   0x3B, 0xC3, 0xFB, 0xB3, 0xC6, 0x32, 0x3B, 0xFF, 0xFC, 0xFF,
                                   0xFF
                               };
            

若是你要把a赋值给byte[7]/byte[8],那么你必须把a的高八位先赋值给byte[7],即

byte[7] = a[1];

byte[8] = a[0];

如果你不单部执行,你就不会发现这些简单的错误。

四、读取文本控件、文本会返回当前

对于大彩屏,需要特定的指令读取文本控件的值,读完之后,返回一个指令。其他控件读、返回过程的原理是类似的。

彩屏指令的截图:

具体应用的截图(点击确认后,得到了  EE B1 11 00 03 00 08 11 31 31 31 31 00 FF FC FF FF 指令):

EE B1 11 00 03 00 08 11 31 31 31 31 00 FF FC FF FF 指令表示如下:

EE B1 11——头

00 03 00 08——画面ID、控件ID

11——文本控件

31 31 31 31——文本值

00——结束符

FF FC FF FF——尾

 

五、总结

1、必须了解串口的基本知识。

2、必须了解上位机的基本知识。

3、必须了解彩屏或单片机的基本知识。

4、不管你多少岁,做哪行业,必须养成良好的习惯、并且不断地学习,才能拥有良好的方法,以便解决任何问题。

5、WPF C#的上位代码,保存在GitHub.

6、彩屏工程,没有什么代码可言,都是界面、控件的方式。只利用它的指令助手即可。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值