小车接收控制轮子数据的修改

/************************
char_to_int函数
**************************/
void char_int(char* p, long int* q)  //p指向要转换数组首地址
{
	union change
	{
		long int d;
		unsigned char dat[4];		
	}r1;
	
	for(int i; i<4; i++)
	{
		dat[i]=q[i];
	}
	
	*q = d;
}

/*******************************************************************
		把接收到的数据放进flag_D[18]数组里
**********************************************************************/
		while( InspectQueue() && Flag_Direction2==0 )
		{
			Flag_D[0]=OutQueue(); //要在前面定义i=0;
			if( Flag_D[0]=='+')
			{
				for( j=1; j<18; j++)
				{
					Flag_D[j]=OutQueue();
				}
				if(Flag_D[17]=='\n')
				{
					PS2_BLU = 1;
					Flag_Direction2 = 1;  //把Flag_Direction定义为int类型,表示已存入一个完整的数据包
				}
			}
		}
//		if(InspectQueue())
//		{
//			PS2_BLU = 1;
//			Flag_Direction=OutQueue();  
//	}


/*******************************************************************
		修改void Get_RC(u8 mode)函数
**********************************************************************/
	else if(mode==2)
	{
		if(Flag_Direction == 1)  //判断是否接收到完整数据包
		{
			char_int(&Flag_D[1], &Target_A);
			char_int(&Flag_D[5], &Target_B);
			char_int(&Flag_D[9], &Target_C);
			char_int(&Flag_D[13], &Target_D);
			Flag_Direction = 0;
		}
	}

//	Kinematic_Analysis(Move_X,Move_Y,Move_Z);//得到控制目标值,进行运动学分析	
posted @ 2020-07-30 20:44  Kalzzz  阅读(67)  评论(0)    收藏  举报