labview实现串口通信(三)
扫描二维码
随时随地手机看文章
在调试的过程中,我们经常会发现有收到的数据延迟的现象,现在提出几点解决的方法:(1)在循环中加入适量的延时,通过一个简单的例子看,你会发现在cpu的占用率在加延时和不加的时候有很大的区别,当加的时候基本不占,而不加延时的时候达到100%。我在调试串口通信时候,发现while loop里加一个延时会有很好的效果(假如有一个或某几个线程占用了 100% 的 CPU,此时系统对其他线程就会反应迟钝。例如,程序的执行线程占用了100% 的 CPU,那么用户对界面的操作就会迟迟得不到响应,甚至于用户会误认为程序死锁了。所以在程序中要尽量避免出现 100% 占用 CPU 的情况。 目前大多数的计算机还是单核单个 CPU 的,因此要避免任何一个线程试图 100% 占用 CPU 的情况).(2)visa read 的字节总数最好用一个属性节点来代替因为我们不知道数据缓冲区有多少个字节,这样就不需要去设定了(3)经常看到会有人说串口里面有一堆数据,但是去读的时候却读回来一点点,每次均不相同,这种怀状况是由于串口有一个serial configuration这个节点上面,有一个termination char,大家将它设为F就可以了,因为遇到这个终止符,它就会停止读数,所以读回来的就会少了!