Labview串口通信如何获得以帧头为首的数组? 10
程序如上,每次读通信33位,我想获得以85为首的数组要怎么?后面要对这些数据分析,会有部分被截短造成乱码...
程序如上,每次读通信33位,我想获得以85为首的数组要怎么?后面要对这些数据分析,会有部分被截短造成乱码
展开
3个回答
展开全部
1、首先是要确认仪器选择的通信模式是串口通信模式。
现在的仪器一般都至少有二种通信模式,一种是RS232,一种是GPIB,如果仪器是设置为GPIB通信的话,RS232是不可能通信上的,所以要先确认一下,方法一般是在仪器面板上选择设置>>远程控制>>GPIB/RS232,各个仪器稍微不同,可以查仪器手册看一下。
2、 然后就是确认串口的通信参数的配置,包括波特率、数据长度、校验方法等,有些仪器的某些参数是固定的,比如校验方法固定为奇校验,不能修改,只能在电脑上跟仪器设置为一样的。
4、波特率一般是可以修改的,这些参数的配置一定要根据仪器手册上的来设置。如果参数设置不正确,也能收到一些数据,但一般是乱码,如果收到的数据都是乱码的话,就要先检查一下串口参数设置是否正确了,只有电脑和仪器边的串口参数完全一致时才能收到正确的数据。
5、接着是要注意发送指令和读回数据之间要有一定的延时,即VISA WRITE和VISA READ之间要有一定的延时,一般200毫秒即可,因为串口是底层硬件,数据从软件到串口上要一点点时间,然后仪器对指令作出响应也要一点点时间,这些时间加起来肯定比软件运行二个节点的时间要短,所以延时是一定要加的。
6、在调试时如果发现正常运行时不能收到数据,但高亮运行就能收到数据,就很有可能是没有加延时的原因,或者是发一个查询指令,但返回的是上一条查询指令的结果,也可能是因为没有延时或延时不够。
现在的仪器一般都至少有二种通信模式,一种是RS232,一种是GPIB,如果仪器是设置为GPIB通信的话,RS232是不可能通信上的,所以要先确认一下,方法一般是在仪器面板上选择设置>>远程控制>>GPIB/RS232,各个仪器稍微不同,可以查仪器手册看一下。
2、 然后就是确认串口的通信参数的配置,包括波特率、数据长度、校验方法等,有些仪器的某些参数是固定的,比如校验方法固定为奇校验,不能修改,只能在电脑上跟仪器设置为一样的。
4、波特率一般是可以修改的,这些参数的配置一定要根据仪器手册上的来设置。如果参数设置不正确,也能收到一些数据,但一般是乱码,如果收到的数据都是乱码的话,就要先检查一下串口参数设置是否正确了,只有电脑和仪器边的串口参数完全一致时才能收到正确的数据。
5、接着是要注意发送指令和读回数据之间要有一定的延时,即VISA WRITE和VISA READ之间要有一定的延时,一般200毫秒即可,因为串口是底层硬件,数据从软件到串口上要一点点时间,然后仪器对指令作出响应也要一点点时间,这些时间加起来肯定比软件运行二个节点的时间要短,所以延时是一定要加的。
6、在调试时如果发现正常运行时不能收到数据,但高亮运行就能收到数据,就很有可能是没有加延时的原因,或者是发一个查询指令,但返回的是上一条查询指令的结果,也可能是因为没有延时或延时不够。
展开全部
你每次去找帧头,先读取1个字节,和85比较,等于85再读取剩下的32位。带帧头的串口数据读取都应该这样做的
追问
给个程序好么,我知道这个意思但是不知道怎么做。Orz
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
肯定是要先比较帧头再进行截取啊,不能先截取,肯定会截乱
追问
我知道这么整,但是具体操作不会。求程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询