C52控制GPS程序(2)

时间:2026-01-20

e 'M':Command = 2;//语句类型 $GPRMC
RMCF = 1;
break;
case 'T':Command = 3;//语句类型 $GPVTG
VTGF = 1;
break;
case 'S':break;
default:Command = 0; //非有效数据类型,终止当前数据接收
ReceivingF = 0;
break;
}
if(Bytes_counter == 4)
if(Command==0 && tmp=='A')
{
Command = 4;//语句类型 $GPGSA
GSAF = 1;
}
}
else
{
switch(Command)
{
case 1:GPGGA(tmp);
break;
case 2:GPRMC(tmp);
break;
case 3:GPVTG(tmp);
break;
case 4:GPGSA(tmp);
break;
default:break;
}
}
++Bytes_counter;
}
NewByteF = 0;

return;
}

void GPGGA(uchar tmp)
{

switch(Segment)
{
case 1: if(Bytes_counter == 2 || Bytes_counter == 5) //$GPGGA段1,UTC时间,hhmmss(时分秒)格式,取前6位 转换为HH:MM:SS格式
{
GPS_time[Bytes_counter] = ':';
++Bytes_counter;
}
if(Bytes_counter<8)
GPS_time[Bytes_counter] = tmp;
GPS_time[8] = '\0';
break;

case 2: if(Bytes_counter == 3) //$GPGGA 段2处理 纬度ddmm.mmmm(度分)格式
{
GPS_wd[Bytes_counter] = '.'; //接收第二个字节后插入'.'
++Bytes_counter;
GPS_wd[11] = '\0';
}
if(Bytes_counter == 0)
++Bytes_counter;
GPS_wd[Bytes_counter] = tmp;
break;

case 3: GPS_wd[0] = tmp; //$GPGGA第3段处理 纬度半球N(北半球)或S(南半球)
break;

case 4: if(Bytes_counter == 4) //$GPGGA 段4处理 经度dddmm.mmmm(度分)格式
{
GPS_jd[Bytes_counter] = '.'; //接收第3个字节后插入'.'
++Bytes_counter;
GPS_jd[12] = '\0';
}
if(Bytes_counter ==
0)
++Bytes_counter;
GPS_jd[Bytes_counter] = tmp;
break;


case 5: GPS_jd[0] = tmp; //$GPGGA第5段处理 经度半球E(东经)或W(

C52控制GPS程序(2).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:4.9 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:19元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219