基于LabWindows的串口调试助手_第1页
基于LabWindows的串口调试助手_第2页
基于LabWindows的串口调试助手_第3页
基于LabWindows的串口调试助手_第4页
基于LabWindows的串口调试助手_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于LabWindows/CVI 的串口调试助手(含参考代码)界面谓诚菲串口4.-町胳口面板或j討枝型Constant NameLabel匚alibacic FunctionPanelPANEL串口演示RingCOMSELECT甯诰择串口Ringbtlselect请迭择波特黍Rin flJYSELECT请选怪箭偶核蛤欖式RingLONG5ELECT诸遥择加据悅對RingSTOPSELECT摘选择偉止位埶Ccmrnand ButtonOPEN_COM亓开屋口CcmOpenCommand ButtonCLOGE.COM捷输口CemOoseText BoxSENDTEXTCommand Button

2、SENDSendCommand ButtonCLEAR5END胃空岌医框匚 learlextBoxText BoxRFCIVETEXTCommand BLittonRECIEVERecieveCommand ButtonCLEARRECIVE再空接收框CJearTextSojcCommand ButtonQUIT退出Quit遇出乏tfl串口除此之外,还需要修 改某些控件的属性,修改步骤如下:编辑COMSELECT控件的Label/Value属性,向控件添加 项目的Label分别为串口 1、串口 2,相应的 为1、2,数据类型为整数。Value 值编辑BTLSELEC控件的Label/Value

3、属性,向控件添加项 目的Label分别为1200、 2400、4800、9600、19200, 相应的 Value 值为 1200、2400、4800、9600、19200,数据类型为整数。 编 辑JYSELEC控件的Label/Value属性,向控件添加项 目的Label分别为奇校验、偶校验、无校验,相应的Value 值为 1、 2、 0, 数据类型为整数。编辑LONGSELEC控件的Label/Value属性,向控件添 加项目的Label分别为7、8、9,相应的Value值为7、 8、 9,数据 类型为整数。编辑STOPSELEC控件的Label/Value属性,向控件添加项目的Label

4、分别为1、2,相应的 Value值为1、2,数据类型为整数。编辑两个文本框的属 性:TextBoxOptions-Enter KeyCausesNewIine以允许在文本框中输入多行 文本。之后保存文件 com.uir。二、代码#include #include #include #include #include com.hstatic int panelHandle;int comSelect=0;int status;char info513;int CVIFUNCDimObject(int stat)SetCtrlAttribute(panelHandle,PANEL_COMSELEC

5、T,ATTR_DIMMED,stat); SetCtrlAttribute(panelHandle,PANEL_BTLSELECT,ATTR_DIMMED,stat); SetCtrlAttribute(panelHandle,PANEL_JYSELECT,ATTR_DIMMED,stat); SetCtrlAttribute(panelHandle,PANEL_LONGSELECT,ATTR_DIMMED,stat); SetCtrlAttribute(panelHandle,PANEL_STOPSELECT,ATTR_DIMMED,stat); SetCtrlAttribute(panel

6、Handle,PANEL_OPEN_COM,ATTR_DIMMED,stat); SetCtrlAttribute(panelHandle,PANEL_CLOSE_COM,ATTR_DIMMED,!stat); SetCtrlAttribute(panelHandle,PANEL_SEND,ATTR_DIMMED,!stat); SetCtrlAttribute(panelHandle,PANEL_CLEARSEND,ATTR_DIMMED,!stat); SetCtrlAttribute(panelHandle,PANEL_RECIEVE,ATTR_DIMMED,!stat); SetCtr

7、lAttribute(panelHandle,PANEL_CLEARRECIVE,ATTR_DIMMED,!stat); return 0;*/int main (int argc,char *argv) /* 主函 数if (InitCVIRTE(0, argv, 0) = 0)return -1;/* out of memory */if (panelHandle = LoadPanel (0, com.uir, PANEL) 0) return -1;DisplayPanel (panelHandle);RunUserInterface ();DiscardPanel (panelHan

8、dle);return 0;int CVICALLBACKQuit (int panel, int control, int event,/* 退void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_COMMIT: if(comSelect) CloseCom(comSelect); comSelect=0; DimObject(0);QuitUserInterface (0); break;return 0;int CVICALLBACKClearTextBox (int panel, int

9、control, int event, /* */void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_COMMIT:if(control=PANEL_CLEARRECIVE)ResetTextBox(PANEL,PANEL_RECIVETEXT,”0);清空接收框 else、关闭串口 */清空文本框ResetTextBox(PANEL,PANEL_SENDTEXT,”0);清 空发送框return 0;int CVICALLBACKRecieve (int panel, int control,

10、 int event,/* 接收信息 功能函数*/void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_COMMIT:if(!comSelect) return -1;SetComTime(comSelect,2.0); / 设置通信超时时限。 status=ComRd(comSelect,info,GetInQLen(comSelect);if(status=0)MessagePopup(ERROR,send data failed!);break;/ 将接收信息写入文本框infostatus=

11、0; / 添加结束符SetCtrlVal(PANEL,PANEL_RECIVETEXT,info); SetActiveCtrl(PANEL,PANEL_RECIVETEXT);break;return 0;int CVICALLBACKSend (int panel, int control, int event, /* 发送信息功能函数 */void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_COMMIT:if(!comSelect) return -1;GetCtrlVal(PANEL,P

12、ANEL_SENDTEXT,info); / 获取发送文本信息 status=ComWrt(comSelect,info,strlen(info);/ 发 送 if(status!=strlen(info)MessagePopup(ERROR,send data failed!);return 0;int CVICALLBACKComOpen (int panel, int control, int event, /* 打开串口 */ void *callbackData, int eventData1, int eventData2)int comValue,btlValue,jhValue

13、,longValue,stopValue;switch (event)case EVENT_COMMIT:GetCtrlVal(PANEL,PANEL_COMSELECT,&comValue);选择串行口(串口的一些基本设置)GetCtrlVal(PANEL,PANEL_BTLSELECT,&btlValue);选择波特率 GetCtrlVal(PANEL,PANEL_JYSELECT,&jhValue)选 择奇偶校验 GetCtrlVal(PANEL,PANEL_LONGSELECT,&Io ngValue)选 择数据位 GetCtrlVal(PANEL,PANEL_STOPSELECT,&

14、 stopValue)选择停止位status=OpenComConfig(comValue,btlValue,jhValue,longValue,stopValue,512,512); if(status!=0)MessagePopup(ERROR,se nd data failed!);return 0;SetCTSMode(comValue,LWRS_HWHANDSHAKE_OFF); /禁止硬件握手 FlushInQ(comValue);/ 清空输入和输出缓冲区FlushOutQ(comValue); comSelect=comValue;DimObject(1); break;return 0;*/int CVICALLBACKComClose (int panel, int control, int event, /* 关闭串口 void *callbackData, int ev

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论