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

📄 com.c

📁 通讯电缆智能防盗报警器--通讯电缆智能防盗报警器安装在各局的机房内
💻 C
字号:
#define  COM_GLOBALS

#include <includes.h>


//********************************通信数据处理程序**********************************


INT8U ArrCompare(INT8U *p1,INT8U *p2,INT8U Len)                //比较两数组是否相等
{
	int i;
	INT8U fEQU=1;
	INT8U a1,a2;
	for(i=0;i<Len;i++)
	{
		a1=*(p1+i);
		a2=*(p2+i);
		if(a1!=a2)fEQU=0;
	}
	return(fEQU);
}
void ArrCopy(INT8U *p2,INT8U *p1,INT8U Len)                //将P1复制到P2,<P2=P1>
{
	int i;
	INT8U a1;
	for(i=0;i<Len;i++)
	{
		a1=*(p1+i);
		*(p2+i)=a1;
	}
}

//****************************************串口数据收发程序***************************************


INT8U SerTxArr(INT8U ArrHead,INT8U *p,INT8U Len)					//从串口发送一字节数据,数据格式为 0x7e 0x82 xx-xx 0x33
{
	  INT8U i;
	  ACC=SER_HEAD0;	                 	
		TB8=!P;
		SBUF=SER_HEAD0;
		cntSerOverTime=0;
		fSerOverTime=0;
		while((TI==0)&&(fSerOverTime==0));
		TI=0;
		if(fSerOverTime==1)return(1);
		
		ACC=SER_HEAD1;	                 	
		TB8=!P;
		SBUF=SER_HEAD1;
		cntSerOverTime=0;
		fSerOverTime=0;
		while((TI==0)&&(fSerOverTime==0));
		TI=0;
		if(fSerOverTime==1)return(1);
		
		ACC=ArrHead;	                 	
		TB8=!P;
		SBUF=ArrHead;
		cntSerOverTime=0;
		fSerOverTime=0;
		while((TI==0)&&(fSerOverTime==0));
		TI=0;
		if(fSerOverTime==1)return(1);

		
		for(i=0;i<Len;i++)
		{
			ACC=*(p+i);
		  TB8=!P;
		  SBUF=*(p+i);
		  cntSerOverTime=0;
		  fSerOverTime=0;
		  while((TI==0)&&(fSerOverTime==0));
		  TI=0;
		  if(fSerOverTime==1)return(1);
		}


		ACC=SER_TIR;	                 	
		TB8=!P;
		SBUF=SER_TIR;
		cntSerOverTime=0;
		fSerOverTime=0;
		while((TI==0)&&(fSerOverTime==0));
		TI=0;
		if(fSerOverTime==1)return(1);
		return(0);
}



INT8U SerRxArr(INT8U ArrHead,INT8U *p,INT8U Len)          //从串口接收一串数据,数据格式为 0x7e 0x82 xx-xx 0x33
{
		INT8U i;
		INT8U rxdatabuf;
		cntSerOverTime=0;
		fSerOverTime=0;
		DebReg=0x00;
		while((RI==0)&&(fSerOverTime==0));
		rxdatabuf=SBUF;
		RI=0;
		if(fSerOverTime||(rxdatabuf!=SER_HEAD0))
		{
			DebReg=0x01;
//			return(1);
			
		}
//		DebReg=0x00;
		cntSerOverTime=0;
		fSerOverTime=0;
		while((RI==0)&&(fSerOverTime==0));
		rxdatabuf=SBUF;
		RI=0;
		if(fSerOverTime||(rxdatabuf!=SER_HEAD1))
		{
			DebReg=0x02;
//			return(1);
		}
//		DebReg=0x00;
		cntSerOverTime=0;
		fSerOverTime=0;
		while((RI==0)&&(fSerOverTime==0));
		rxdatabuf=SBUF;
		RI=0;
		if(fSerOverTime||(rxdatabuf!=ArrHead))
		{
			DebReg=0x03;
//			return(1);
		}
//		DebReg=0x00;
		for(i=0;i<Len;i++)
		{
			cntSerOverTime=0;
			fSerOverTime=0;
			while((RI==0)&&(fSerOverTime==0));
			*(p+i)=SBUF;
			RI=0;
			if(fSerOverTime)
			{
				DebReg=0x04;
//				return(1);
			}
		}
//		DebReg=0x00;
		cntSerOverTime=0;
		fSerOverTime=0;
		while((RI==0)&&(fSerOverTime==0));
		rxdatabuf=SBUF;
		RI=0;
		if(fSerOverTime||(rxdatabuf!=SER_TIR))
		{
			DebReg=0x05;
//			return(1);
		}
		if(DebReg==0x00)return(0);
		else return(1);
}

⌨️ 快捷键说明

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