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

📄 error_dispose.h

📁 使用MC9S12DP256写的CAN转串口程序。
💻 H
字号:
//自检历程
void Self_Check(){}

//判断是否存在故障,如果有故障,生成故障码
uchar Check_Error()
{	
	return 255;//没有任何故障
}

//故障处理
void Error_Process(uchar error)
{
	if (error == 255 )
		return;	
	
	switch(error)
	{
		case 1:
		case 2:
		case 30:
		case 31:
		case 32:
			break;
		case 5:
		case 6:
		case 7:
		case 8:
		case 9:
		case 10:
		case 11:
		case 12:
		case 13:
		case 14:
		case 15:
		default:;
	}
}


void Error_COM()
{	
	Push_Queue(17,241);
	
	//CAN发送
	while((m_ComEnd==0)&&(SendQueNum>0))
	{
		if(SendOver == 1)
		{
			Make_SendFrame(SendQue[SendQueNum-1]);
			SendOver = 0;
			SendQueNum--;
			CAN0TIER = 0x07;//发送中断使能,启动一次发送
		}
	}//CAN发送结束		
}

//检测诊断仪
void Check_Diagnoser()
{
	static ulong Diagnoser_CNT_last = 0;
	static uchar CNT_i = 0;
	uchar i = 0;
	
	if(PDU_CNT[17] == Diagnoser_CNT_last)//没有收到诊断仪的报文
		return;

	//如果收到
	Diagnoser_CNT_last = PDU_CNT[17];
	
	switch ((uchar)PDU[17].VerData[1])
	{
		case 0x10://请求诊断操作
			if(1)//判断车辆状态,看是否允许和诊断仪通讯
			{
				ERR_COM = 1;
				PDU[17].VerData[0] = 0x01;//PCI
				PDU[17].VerData[1] = 0x50;
			}
			else
			{
				ERR_COM = 0;
				PDU[17].VerData[0] = 0x02;//PCI
				PDU[17].VerData[1] = 0x7F;
				PDU[17].VerData[2] = 0xAA;//Res.Cod
			}
			Error_COM();
			break;
		case 0x13://请求故障码信息
			if(ERR_COM)
			{
				if(1)//故障码少于3个,使用单帧传输
				{
					PDU[17].VerData[0] = 0x07;//PCI
					PDU[17].VerData[1] = 0x53;
					
					PDU[17].VerData[2] = ERR_CODE[0]>>8;
					PDU[17].VerData[3] = ERR_CODE[0];
					PDU[17].VerData[4] = ERR_CODE[1]>>8;
					PDU[17].VerData[5] = ERR_CODE[1];
					PDU[17].VerData[6] = ERR_CODE[2]>>8;
					PDU[17].VerData[7] = ERR_CODE[2];
				}
				else//故障码多于3个,使用多帧传输
				{
					
				}
				Error_COM();
			}
			break;
		case 0x14://清除诊断信息
			if(ERR_COM)
			{
				if(1)//判断是否允许清除诊断信息
				{
					for(i=0;i<10;i++)//清除故障码
						ERR_CODE[i] = 0;
						
					PDU[17].VerData[0] = 0x01;//PCI
					PDU[17].VerData[1] = 0x54;
				}
				else
				{
					PDU[17].VerData[0] = 0x02;//PCI
					PDU[17].VerData[1] = 0x7F;
					PDU[17].VerData[2] = 0xAA;//Res.Cod
				}
				
				Error_COM();
			}
			break;
			
		default:
			;	
	}	
}

⌨️ 快捷键说明

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