微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > labview串口通讯的深入分析.

labview串口通讯的深入分析.

时间:01-09 来源:互联网 点击:

我们分别命名为:bit 0--->Relay 0,1--->

描述
380无效属性值 comInvalidPropertyValue
383属性为只读 comSetNotSupported
394属性为只读 comGetNotSupported
8000端口打开时操作不合法 comPortOpen
8001超时值必须大于 0
8002无效端口号 comPortInvalid
8003属性只在运行时有效
8004属性在运行时为只读
8005端口已经打开 comPortAlreadyOpen
8006设备标识符无效或不支持该标识符
8007不支持设备的波特率
8008指定的字节大小无效
8009缺省参数错误
8010硬件不可用(被其它设备锁定)
8011函数不能分配队列
8012设备没有打开 comNoOpen
8013设备已经打开
8014不能使用 comm 通知
8015不能设置 comm 状态 comSetCommStateFailed
8016不能设置 comm 事件屏蔽
8018仅当端口打开时操作才有效 comPortNotOpen
8019设备忙
8020读 comm 设备错误 comReadError
8021为该端口检索设备控制块时的内部错误 comDCBError

以上这部分转载于网上.

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等其它的几个都比较简单,就不介绍了.

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

网站地图

Top