您的位置 首页 芯闻

labview串口通讯的深入分析.

labview称做G语言,只是说明了它具备了通用编程语言的编程能力,但是任何编程语言都有器独特的特点,否则经过几十年的风风雨雨,并没有出现一

labview称做”G”言语,仅仅阐明晰它具有了通用编程言语的编程才能,可是任何编程言语都有器共同的特色,不然经过几十年的风风雨雨,并没有呈现一种编程言语统一天下的格式,每种编程言语都有其特别合适的范畴,从这点来说,数据收集和仪器通讯能够说是它最拿手的范畴.毫无疑问,计算机的串口通讯是相对比较简略的通讯办法,labview也不例外地对它供给了支撑.

LABVIEW的串口操控,能够经过多种办法:

1.最根本的IN OUT 操控,LABVIEW供给了In port和Out Port两个根本输入输出VI,经过它就能够直接读写寄存器,我自己 做的许多并口操控设备便是运用了这两个节点,在计算机的DOS年代,经过IN OUT指令进行串口通讯是仅有的挑选,现在正在做单片机的朋友都知道,单片机的串口通讯都是经过操作寄存器完结的,关于计算机的COM1,它的端口地址是0X3F8,完全能够经过它来完结串口通讯.

2.运用API的WriteFile 函数完结串口通讯,这是VC进行串口通讯的办法.

3.运用VB供给的MSCOMM控件(这是现在用的最多的,它支撑查询和中止两种方式,即能够发送文本型数据(ASCII),由能够发送二进制(BIN,实践是BYTE ARRAY)

4.运用LABVIEW特有的VISA通讯

直接操控寄存器的办法在计算机串口通讯根本看不到了.只要在单片机中还选用这种办法.

经过C51串口通讯,简略地介绍一下这种办法:

/* 发送数据函数 */

void SendData(uchar *buf)

{

uchar i;

uchar len;

len=strlen(buf); /* 获得字符串长度*/

for(i=0;i

{

SBUF=buf[i]; /* SBUF是串口输出REG */

while(!TI);/* 等候发送完结 */

TI=0; /* 复位中止标志 */

办法2直接调用API十分复杂,在LV不会选用,就不介绍了.

办法3是现在用的最多,介绍一下.

MSComm控件供给下列两种处理通讯的办法:事情驱动办法和查询办法。

来历: http://dev.yesky.com/347/2636847.shtml 

2.1 事情驱动办法

  事情驱动通讯是处理串行端口交互作用的一种十分有用的办法。在许多情况下,在事情发生时需求得到告诉,例如,在串口接纳缓冲区中有字符,或许 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符抵达或一个改变发生时。在这些情况下,能够运用 MSComm 控件的 OnComm 事情捕获并处理这些通讯事情。OnComm 事情还能够查看和处理通讯过错。一切通讯事情和通讯过错的列表,参看 CommEvent 特点。在编程过程中,就能够在OnComm事情处理函数中参加自己的处理代码。这种办法的长处是程序呼应及时,可靠性高。每个MSComm 控件对应着一个串行端口。假如应用程序需求拜访多个串行端口,有必要运用多个 MSComm 控件。

  2.2 查询办法

  查询办法实质上仍是事情驱动,但在有些情况下,这种办法显得更为快捷。在程序的每个要害功用之后,能够经过查看 CommEvent 特点的值来查询事情和过错。假如应用程序较小,而且是自坚持的,这种办法可能是更可取的。例如,假如写一个简略的电话拨号程序,则没有必要对每接纳一个字符都发生事情,由于仅有等候接纳的字符是调制解调器的“确认”呼应。

   MSComm 控件有许多重要的特点,但首要有必要了解几个特点。

CommPort 设置并回来通讯端口号。
Settings 以字符串的方式设置并回来波特率、奇偶校验、数据位、中止位。
PortOpen 设置并回来通讯端口的状况。也能够翻开和封闭端口。
Input 从接纳缓冲区回来和删去字符。
Output 向传输缓冲区写一个字符串。

 下面别离描绘:

  CommPort特点:设置并回来通讯端口号。

  语法 object.CommPort[value ] (value 一整型值,阐明端口号。)

  阐明 在设计时,value 能够设置成从 1 到 16 的任何数(缺省值为 1)。可是假如用 PortOpen 特点翻开一个并不存在的端口时,MSComm 控件会发生过错 68(设备无效)。

  留意:有必要在翻开端口之前设置 CommPort 特点。

  RThreshold 特点:在 MSComm 控件设置 CommEvent 特点为 comEvReceive 并发生 OnComm 之前,设置并回来的要接纳的字符数。

  语法:object.Rthreshold [ = value ](value 整型表达式,阐明在发生 OnComm 事情之前要接纳的字符数。 )

  阐明:当接纳字符后,若 Rthreshold 特点设置为 0(缺省值)则不发生 OnComm 事情。例如,设置 Rthreshold 为 1,接纳缓冲区收到每一个字符都会使 MSComm 控件发生 OnComm 事情。

  CTSHolding 特点:确认是否可经过查询 Clear To Send (CTS) 线的状况发送数据。Clear To Send 是调制解调器发送到相联计算机的信号,指示传输能够进行。该特点在设计时无效,在运行时为只读。

  语法: object.CTSHolding(Boolean)

  Mscomm 控件的 CTSHolding 特点设置值:

  True Clear To Send 线为高电平。
  False Clear To Send 线为低电平。

  阐明:假如 Clear To Send 线为低电平 (CTSHolding = False) 而且超不时,MSComm 控件设置 CommEvent 特点为 comEventCTSTO (Clear To Send Timeout) 并发生 OnComm 事情。

  Clear To Send 线用于 RTS/CTS (Request To Send/Clear To Send)硬件握手。假如需求确认 Clear To Send 线的状况,CTSHolding 特点给出一种手艺查询的办法。

  详细信息 有关握手协议,请参看 Handshaking 特点。

  SThreshold 特点: MSComm 控件设置 CommEvent 特点为 comEvSend 并发生 OnComm 事情之前,设置并回来传输缓冲区中答应的最小字符数。

  语法 object.SThreshold [ = value ]

  value 整形表达式,代表在 OnComm 事情发生之前在传输缓冲区中的最小字符数。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/xinwen/211652.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部