微波EDA网,见证研发工程师的成长! 2025年02月18日 星期二
首页 > 研发问答 > 测试测量 > Labview > 小草手把手教你 LabVIEW 串口仪器控制——常见问题举例分析

小草手把手教你 LabVIEW 串口仪器控制——常见问题举例分析

时间:10-02 整理:3721RD 点击:
常见问题举例分析
(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读操作?

小草老师,我按你给的数据读取程序写了一个,但是接不到数据  怎么破


加载中...


加载中...

好资料。。

谢谢分享·····

受教了~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top