用μPSD3234A获取Motorola Oncore的GPS信息
=SBUF;
if((RI)&&(ch==0x40))//识别第二个’@’
{RI=0;head[1]=ch;
while(!RI);
ch=SBUF;
if((RI)&&(ch==0x45))//识别’E’
{RI=0;head[2]=ch;
while(!RI);
ch=SBUF;
if((RI)&&(ch==0x61))//识别抋?
{RI=0;head[3]=ch;
for(k=0;k<=72;k++)
//将后续72个字符放入org_data[]
{while(!RI);
org_data[k]=SBUF;
RI=0;
}
}
else{RI=0;continue;}
}
else{RI=0;continue;}
}
else{RI=0;continue;}
}
else{RI=0;continue;}
}
(3)从org_data[]数组中提取所需信息
读取的信息都存放在org_data[]数组中,根据@@Ea的格式内容即可定位所需信息的位置。数组中所存放的是二进制数,为了能显示还需将其转换为ASCII码的形式,因此还提供了以下4个函数来实现此功能,分别是:hextobcdtoascii_two(unsignedinthexs_two,unsignedcharnum_two)、hextobcdtoascii_four(unsignedinthexs_four,unsignedcharnum_four)、hextobcdtoascii_nine(unsignedlonginthexs_nine,unsignedcharnum_nine)和init_msgbuff(unsignedchar*dataptr,unsignedchar*buffptr),其中前3个分别是实现将二进制数转换成两位、四位和九位的ASCII码形式,最后一个函数是实现将代码段中的字符串存入数据存储区内,用以实现将字符串显示在液晶显示器上。
程序运行后,在液晶上显示的结果为:
DATE:?1-01-2004
TIME爃07:m50:s10
LATITU:牋0028?44?//经度为28°44′,因为表示度的小圆圈不好显示,所以用问号?表示度。
LONGIT:牋0115?51?//纬度为115°51′
HIGH:牋0145牋ft?//高度为145英尺
结语
在需要实时、准确地获取空间位置和时间信息的场合,如环境监测与保护工程、交通调度等,该设计可嵌入到此类远程移动监控系统中。
《用μPSD3234A获取Motorola Oncore的GPS信息(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/174039.html
if((RI)&&(ch==0x40))//识别第二个’@’
{RI=0;head[1]=ch;
while(!RI);
ch=SBUF;
if((RI)&&(ch==0x45))//识别’E’
{RI=0;head[2]=ch;
while(!RI);
ch=SBUF;
if((RI)&&(ch==0x61))//识别抋?
{RI=0;head[3]=ch;
for(k=0;k<=72;k++)
//将后续72个字符放入org_data[]
{while(!RI);
org_data[k]=SBUF;
RI=0;
}
}
else{RI=0;continue;}
}
else{RI=0;continue;}
}
else{RI=0;continue;}
}
else{RI=0;continue;}
}
(3)从org_data[]数组中提取所需信息
读取的信息都存放在org_data[]数组中,根据@@Ea的格式内容即可定位所需信息的位置。数组中所存放的是二进制数,为了能显示还需将其转换为ASCII码的形式,因此还提供了以下4个函数来实现此功能,分别是:hextobcdtoascii_two(unsignedinthexs_two,unsignedcharnum_two)、hextobcdtoascii_four(unsignedinthexs_four,unsignedcharnum_four)、hextobcdtoascii_nine(unsignedlonginthexs_nine,unsignedcharnum_nine)和init_msgbuff(unsignedchar*dataptr,unsignedchar*buffptr),其中前3个分别是实现将二进制数转换成两位、四位和九位的ASCII码形式,最后一个函数是实现将代码段中的字符串存入数据存储区内,用以实现将字符串显示在液晶显示器上。
程序运行后,在液晶上显示的结果为:
DATE:?1-01-2004
TIME爃07:m50:s10
LATITU:牋0028?44?//经度为28°44′,因为表示度的小圆圈不好显示,所以用问号?表示度。
LONGIT:牋0115?51?//纬度为115°51′
HIGH:牋0145牋ft?//高度为145英尺
结语
在需要实时、准确地获取空间位置和时间信息的场合,如环境监测与保护工程、交通调度等,该设计可嵌入到此类远程移动监控系统中。
《用μPSD3234A获取Motorola Oncore的GPS信息(第3页)》