因为通信过程中不定时,偶尔,随机出现传送数据乱码,困扰了我好多天,在各大论坛上也未找到解决办法,问了很多于是精简自己的程序框图,从最基本的串口读写入手,寻找问题,发现是因为自己把串口配置函数放在了大循环while里面,而且等待时间设置不合理,导致每次循环时,又会重新去配置串口,造成了延时,导致后面的数据读取紊乱。
因此,像我一样的初学者得注意了,有两种修改方法都是可以的:
1.串口配置以及串口关闭最好是放在while循环外面,而且当串口配置放在外面时,接收到的数据显示速度明显加快了很多;
由于生成应用程序后,LabVIEW界面自动处于运行状态,此时,我在运行的状态下,去配置串口号,波特率等信息(由于在大循环外面),就会导致命令发送不出去,得关闭运行状态,配置好参数后重新打开,这对于应用者来说很不方便,于是就又寻找一种解决办法:
2.把串口配置放在大循环里面,设置合理的等待下一个整数倍毫秒函数。这样自动运行状态时,用户可以配置参数,比较方便。该函数功能:
等待直至毫秒计时器的值为毫秒倍数中指定值的整数倍。该函数用于同步各操作。可在循环中调用该函数,控制循环执行的速率。但是,第一个循环周期可能很短。连线0至 毫秒倍数输入,可迫使当前线程放弃对CPU的控制。
我方法一中设置的为,自以为已经够可以了,可是当后来对这个函数有了深入的了解过后,重新配置参数,发现在方法二中设置为时,不再出现收到消息乱码的问题。这就是我的实际经验,由于开始学,找了很久找不出问题所在,终于在一步步摸索中找到问题所在。遇到跟一样问题的学习者,可以参考我上述的方法试试,看看这能不能给你指引方向。