小草手把手教你 LabVIEW 串口仪器控制——常见问题举例分析
(1)下图,读取串口程序,把配置串口放到循环里,每次都要初始化串口,然后怎么怎么的。我前面讲过了串口配置放到循环外,不要往复让这个执行。
(2)流程不对。串口的几个步骤,是必须的,先打开配置,然后读或者写,然后关闭。
(3)竞争状态,多个地方同时读,同时写。
如上图,两个线程里,都有读 VISA,或者一个 WHILE 里,多个地方同时读,这样,肯定会有错,同时,保证一个串口,只有一个读,或者写。232 接口里,读和写可以同时进行,因为他是全双工的。而 485 半双工 2 线制时候,请注意,读和写不可以同时,因为是半双工。另外上图中,有 2 个 VISA 关闭,其实关闭一次就行了。因为前面只打开了一个资源。
(4)使用如下组合,并且使用截取字符串。
前面讲过,左边两个函数,功能是读取全部串口缓冲数据。你后面又是截取数据中有用的。但是,你如果单片机是连续发的,你就不知道你串口的数据,是不是按你所截取的数据。比如你认为你截取的是 012345,你想得到 3.可是,缓冲数据是 12345,你如果还那么截取,就只是截取到了 4。如果单片机是一下子发一串,就用这个组合吧。
解决方法:如果你单片机数据是间隔的,而且每次发送的是固定的数据。请自己设定VISA 读取的,字节数,比如设置为 12。
如果你的发送指令,有协议头,就是为了同步而加的帧头,如下图,是 FF 加上 12 个字节数目,可以按下面的结构,先读取一个字节,看是否是 FF(HEX 显示),如果不是,就继续检测,如果是 FF,就读取接下来的 12 字节
编写者:浅浅的小草
论坛账号:happyarrow
推荐阅读:
小草手把手教你 LabVIEW 串口仪器控制—使用串口调试小助手
小草手把手教你 LabVIEW 串口仪器控制——使用虚拟串口
小草手把手教你 LabVIEW 串口仪器控制——通信协议(指令)
小草手把手教你 LabVIEW 串口仪器控制——字符串处理
小草手把手教你 LabVIEW 串口仪器控制——VISA 串口配置
小草手把手教你 LabVIEW 串口仪器控制——初识VISA串口
小草手把手教你LabVIEW串口仪器控制—安装使用仪器现有驱动
小草手把手教你 LabVIEW 串口仪器控制——VISA 驱动下载安装篇
换了360浏览器终于能看了,顶一下草神!
小编你好,我选了VISA资源名称,然后我按控件箭头,想选串口号COM1,可是我按了箭头只有刷新两个字,求解
谢谢小草的指点
小草写的太好了,通俗易懂,真新感动,我是你的忠实粉丝.!
能讲些DAQ采集以及蓝牙方面的方面的知识吗,好期待啊!
太好了,我收藏了。
太好了,我收藏了。
学习了,很好的资料,谢谢分享!希望更多labview资料可以分享
小草君,关于你的第二个图流程不对的那个,属性节点的Bytes at Ports 中字节数为0一般都是什么错误呀,困扰一天了,求指点!
因为串口没有数据,所以是0.
一般是WHILE循环里 加上一定的延时。
小草老师,我照着您说的改了,还是有问题,您请帮忙看一下好吗?多谢!
自己看你 下位机有问题吧。先排除下位机问题。我也帮不了你。具体靠自己琢磨。道理都是简单的。
好的,还是谢谢老师啦!
小草老师,打扰你了,请教你最后一个问题,同一个串口可以先对其写入数据,再对其读取数据吗
同时是什么意思? 如果是收发的话,232的是全双工的,可以发的时候,同时接收。
好不错!
挺好的哈赞一个
谢谢分享,学习了
请问你使用笔记本还是工控机?
小草老师,为什么最后一个图的程序运行了我却出不了数据呢?图如下
谢谢,好好学习一下。
dddddddddddddddddddddddddddddddddddddddddddddddddddd
下面的那个while里面怎么两个VISA读操作?
小草老师,我按你给的数据读取程序写了一个,但是接不到数据 怎么破
好资料。。
谢谢分享·····
受教了~