新闻中心

EEPW首页>测试测量>设计应用> labview串口通讯的深入分析.

labview串口通讯的深入分析.

作者: 时间:2017-01-09 来源:网络 收藏

labview可以直接调用ACTIVEX控件,所以可以直接使用,新版本的LV可以注册回调函数(REG CALLBACK),所以这个控件的所有功能都是可用的,下面示意一下调用的方法.


重点介绍一下VISA串口通讯的方法:

基本流程是:打开(配置)--->循环(读写)--->关闭(释放)



一共有八个VI节点

1.VISA Configure Serial Port :

设定波特率,数据位,停止位,奇偶校验位,流控制,超时处理,结束符使能,结束符.

特别需要注意的是超时(TIMEOUT) 和结束符号两个参数.TIMEOUT默认的10秒,结束符号默认是使能状态,默认的结束符是0X0A(n),另外,回车0x0D (r)也经常做为做为结束符号.

如果采用的是二进制通讯,可能会遇到结束符的问题.因为二进制中0A是10,0D是13,这两个是作为数字出现的,如果不禁止结束符号,会导致读提前结束,产生错误的结果,这再和设备通讯时可能会碰到.

至于波特率,数据位等,对照要通讯的设备的要求设定就可以了.

2.Visa Write: 这个节点负责把缓冲区的数据发送出去,并返回实际发送的数据.

  MSCOMM串口通讯时是可以选择文本和二进制方式的,VISA有选择项吗?没有,完全取决于你的字符串,这是一个需要注意的问题.

正常显示方式时,字符串是"1234"在内存中存储的是ASCII,看下图.



"1"=31,"2"=32 "3"=33,"4"=34.

发送的字符串"1234"实际发送的是16进制的31,32,33,34.用过单片机的都知道,实际所有的串口通讯从本质上说,都是二进制的,只不过接收方面如何判定数据的问题.

比如发送的是33(HEX),接收方面可以解释成数字1,(字符串型),或者是数字33.

用过C的人知道,字符串实际和U8数组是等价的.



所以VISA是不管是否是字符串还是数值,都是采用二进制发送的,关键是我们在于我们的字符串是如何构成的.

Visa Read等其它的几个都比较简单,就不介绍了.


上一页 1 2 3 下一页

关键词:labview串口通

评论


技术专区

关闭