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

📄 com.c

📁 一个基于LABwindowsCVI和单片机的串口双向通讯程序
💻 C
字号:
#include <ansi_c.h>
#include <rs232.h>
#include <cvirte.h>		
#include <userint.h>
#include "com.h"

static int panelHandle;

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);
	OpenComConfig (4, "COM4", 9600, 0, 8, 1, 512, 512);    
	RunUserInterface ();
	DiscardPanel (panelHandle);
	CloseCom (4);
	return 0;
}

int CVICALLBACK comsend (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	static int dat;
	int num;
	switch (event)
	{
		case EVENT_COMMIT:
			 if(++dat==100)dat=0;
			 
			 ComWrtByte (4, dat);
			 //ComWrtByte (4, 0xaa);
			 while(1)
			 {
			 	num=GetOutQLen (4);
				if(num==0) break;
			 }
			break;
		case EVENT_RIGHT_CLICK:

			break;
	}
	return 0;
}

int CVICALLBACK quit (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
			
			QuitUserInterface (0);
			break;
		case EVENT_RIGHT_CLICK:

			break;
	}
	return 0;
}

int CVICALLBACK timefun (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	int temp;
	int i=0;
	char buf[10];
	switch (event)
	{
		case EVENT_TIMER_TICK:
			temp=GetInQLen (4);
			if(temp>0)
			{
				while(temp>0)
				{
					i=ComRdByte (4);
					temp=GetInQLen (4);  
				}
				sprintf(buf,"%d",i);
				SetCtrlVal (panelHandle, PANEL_STRING, buf);
			}
			break;
	}
	return 0;
}


⌨️ 快捷键说明

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