⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 不知道大家对CVI是否熟悉.这里先附上一个用CVI写的串口测试程序.
💻 C
字号:
#include <utility.h>
#include <ansi_c.h>
#include <rs232.h>
#include <formatio.h>
#include <cvirte.h>		
#include <userint.h>
#include "test.h"

static int panelHandle;


void CVICALLBACK Event_COM2ReceiveChar(int portnum,int eventMask,void *callbackData);    

int main (int argc, char *argv[])
{
	if (InitCVIRTE (0, argv, 0) == 0)
		return -1;	/* out of memory */
	if ((panelHandle = LoadPanel (0, "test.uir", PANEL)) < 0)
		return -1;
	DisplayPanel (panelHandle);
	RunUserInterface ();
	DiscardPanel (panelHandle);
	return 0;
}

int CVICALLBACK PanelCallback (int panel, int event, void *callbackData,
		int eventData1, int eventData2)
{
	switch (event)
		{
		case EVENT_GOT_FOCUS:

			break;
		case EVENT_LOST_FOCUS:

			break;
		case EVENT_CLOSE:
		    CloseCom(1);
		    CloseCom(2);
			QuitUserInterface (0);
			break;
		}
	return 0;
}

int CVICALLBACK ConfigCallback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{   int status; 
	switch (event)
		{
		case EVENT_COMMIT: 
		    
			status=OpenComConfig(1,"COM1",1200,0,7,1,0,0);
			SetCTSMode(1,LWRS_HWHANDSHAKE_OFF);
	        SetComTime(1,5.0);
			if(status!=0)
			{ MessagePopup("Error","COM1 Config failed!");
			return 0;
			}
			status=OpenComConfig(2,"COM2",1200,0,7,1,0,0); 
			SetCTSMode(1,LWRS_HWHANDSHAKE_OFF);
	        SetComTime(1,5.0);
			if(status!=0)
			{ MessagePopup("Error","COM2 Config failed!");
			 return 0;
			}
/*
		    InstallComCallback(2,LWRS_RXCHAR,8,13,Event_COM2ReceiveChar,0);	
			  
			FlushOutQ(1);
			FlushInQ(1);
			FlushOutQ(2);
			FlushInQ(2);
*/			
			SetCtrlAttribute(panelHandle,PANEL_SEND,ATTR_DIMMED,0);
			break;
		}
	return 0;
}

int CVICALLBACK SendCallback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{  // unsigned char Frame[14]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d};
    char Frame[14]="bbktel20051103";
    int status;
    char ReadBuffer[256];
    int datalen;
	switch (event)
		{
		case EVENT_COMMIT:
			DefaultCtrl(panelHandle,PANEL_Message); 
			status=ComWrt(1,Frame,14);
			if(status!=14)
			{MessagePopup("Error","Send Data failed!");
			 return 0;
			}

			Delay(2.0);
			datalen=GetInQLen(1);
		    status = ComRd (1, ReadBuffer,datalen);
			if(status!=14)
			{MessagePopup("Error","Read Data failed!");
			 return 0;
			}
			else
			 {
			   SetCtrlVal(panelHandle,PANEL_Message,ReadBuffer);
			   MessagePopup("OK","COM1 Test Successful!");
			 }
			break;
		}
	return 0;
}

void CVICALLBACK Event_COM2ReceiveChar(int portnum,int eventMask,void *callbackData)   
{ int datalen;
  int status;
  unsigned char receivechar[14];
  unsigned char message[100];
  unsigned char ch[1]={0};
  unsigned char tempreceive[3]={0,0,0};
  
  datalen=GetInQLen(2);
  ComRd(2,receivechar,datalen);
  ch[0]=datalen;
  Fmt(tempreceive,"%s<%x",ch[0]);
  memset(message,0,100);
  strcat(message,"收到");
  strcat(message,tempreceive);
  strcat(message,"个字节");
  MessagePopup("提示",message);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -