|
请问谁有APM上位机通信协议 我照着网上的那个协议发 显示超时
void Send_Status(void)
{u8 i; u8 sum = 0,_temp3; vs32 _temp2 = 0; vs16 _temp;
u8 _cnt=0;
data_to_send[_cnt++]=0xAA;
data_to_send[_cnt++]=0xAA;
data_to_send[_cnt++]=0x01;
data_to_send[_cnt++]=0;
_temp = (int)(ypr[1]*100);
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
_temp = (int)(ypr[2]*100);
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
_temp = (int)(ypr[0]*100);
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
_temp=Altitude/10;
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
_temp2=Hight_sonic * 100;
data_to_send[_cnt++]=BYTE3(_temp2);
data_to_send[_cnt++]=BYTE2(_temp2);
data_to_send[_cnt++]=BYTE1(_temp2);
data_to_send[_cnt++]=BYTE0(_temp2);
_temp3=0;
data_to_send[_cnt++]=BYTE0(_temp3);
data_to_send[3] = _cnt-4;
for( i=0;i<_cnt;i++)
sum += data_to_send[i];
data_to_send[_cnt++]=sum;
Send_Data(data_to_send, _cnt);
}
void Send_GPS(void)
{u8 i; u8 sum = 0;
u8 _cnt=0;
vs32 _temp; u8 _temp4=0; float _temp2 =0; vs16 _temp3=0;
data_to_send[_cnt++]=0xAA;
data_to_send[_cnt++]=0xAA;
data_to_send[_cnt++]=0x04;
data_to_send[_cnt++]=0;
_temp = (int)(GPS_J*100);
data_to_send[_cnt++]=BYTE3(_temp);
data_to_send[_cnt++]=BYTE2(_temp);
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
_temp = (int)(GPS_W*100);
data_to_send[_cnt++]=BYTE3(_temp);
data_to_send[_cnt++]=BYTE2(_temp);
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
data_to_send[_cnt++]=BYTE3(_temp2);
data_to_send[_cnt++]=BYTE2(_temp2);
data_to_send[_cnt++]=BYTE1(_temp2);
data_to_send[_cnt++]=BYTE0(_temp2);
_temp2=0;
data_to_send[_cnt++]=BYTE3(_temp2);
data_to_send[_cnt++]=BYTE2(_temp2);
data_to_send[_cnt++]=BYTE1(_temp2);
data_to_send[_cnt++]=BYTE0(_temp2);
data_to_send[_cnt++]=BYTE1(_temp3);
data_to_send[_cnt++]=BYTE0(_temp3);
_temp3=0;
data_to_send[_cnt++]=BYTE1(_temp3);
data_to_send[_cnt++]=BYTE0(_temp3);
data_to_send[_cnt++]=BYTE0(_temp4);
_temp4=0;
data_to_send[_cnt++]=BYTE0(_temp4);
data_to_send[3] = _cnt-4;
for( i=0;i<_cnt;i++)
sum += data_to_send[i];
data_to_send[_cnt++]=sum;
Send_Data(data_to_send, _cnt);
}
void Send_Senser(void)
{u8 i; u8 sum = 0;
u8 _cnt=0;
vs16 _temp;
data_to_send[_cnt++]=0xAA;
data_to_send[_cnt++]=0xAA;
data_to_send[_cnt++]=0x02;
data_to_send[_cnt++]=0;
_temp = ax_gps;
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
_temp = ay_gps;
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
_temp = az_gps;
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
_temp = gx_gps;
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
_temp = gy_gps;
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
_temp = gz_gps;
data_to_send[_cnt++]=BYTE1(_temp);
data_to_send[_cnt++]=BYTE0(_temp);
data_to_send[_cnt++] = 0;
data_to_send[_cnt++] = 0;
data_to_send[_cnt++] = 0;
data_to_send[_cnt++] = 0;
data_to_send[_cnt++] = 0;
data_to_send[_cnt++] = 0;
data_to_send[3] = _cnt-4;
for( i=0;i<_cnt;i++)
sum += data_to_send[i];
data_to_send[_cnt++] = sum;
Send_Data(data_to_send, _cnt);
}
void Send_Check(u16 check)
{u8 i; u8 sum = 0;
data_to_send[0]=0xAA;
data_to_send[1]=0xAA;
data_to_send[2]=0xF0;
data_to_send[3]=3;
data_to_send[4]=0xBA;
data_to_send[5]=BYTE1(check);
data_to_send[6]=BYTE0(check);
for( i=0;i<7;i++)
sum += data_to_send[i];
data_to_send[7]=sum;
Send_Data(data_to_send, 8);
}
void Send_Data(u8 *dataToSend , u8 length)
{
u16 i;
for(i=0;i<length;i++)
UART2_Put_Char(dataToSend[i]);
}
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|