GPS串口数据解码程序_第1页
GPS串口数据解码程序_第2页
GPS串口数据解码程序_第3页
GPS串口数据解码程序_第4页
GPS串口数据解码程序_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、GPS串口数据解码程序bit ReceivingF = 0;bit EndF = 0;bit RMCF = 0;bit GGAF = 0;bit VTGF = 0;bit GSAF = 0;uchar GPS_time9;UTC 时间uchar xdata GPS_wd12;纬度uchar xdata GPS_jd13;经度uchar GPS_warn;定位警告uchar GPS_quality;定位质量uchar GPS_status;/ 定位状态uchar GPS_alt8;海拔uchar GPS_sv3;使用卫星uchar GPS_speed10;速度uchar GPS_date9;UT

2、C 日期uchar Segment; uchar逗号计数Bytes_counter; ucharCommand;void GPRMC(uchar);void GPGGA(uchar);void GPVTG(uchar);void GPGSA(uchar);void gps(uchar);*/功能:NMEA-183协议解析入口 :void返回:void全局变更修改:GPS_*,Segment,command,Bytes_counter,NewByteF修改记录:2007.8.25 创建 by 54etv1/2007.8.26 v1.1修改解码结构*/void gps(uchar tmp)com_

3、send_byte(tmp);if(tmp = $)/ 起始标志Command = 0;ReceivingF = 1;Bytes_counter = 0;Segment = 0;清空语句段计数器return;if(ReceivingF)if(tmp =,)+Segment;Bytes_counter=0;/清空段字节计数器return;if(tmp*)/收到结束标志ReceivingF = 0;EndF = 1;return;if(Segment = 0)if(Bytes_counter = 3)/段 0,语句类型判断switch(tmp)caseG:Command=1;/语句类型$GPGGA

4、GGAF = 1;break;caseM:Command=2;/语句类型$GPRMCRMCF = 1;break;caseCommand=3;/语句类型$GPVTGVTGF = 1;break;caseS:break;default:Command=0;/非有效数据类型,终止当前数据接收ReceivingF=0;break;if(Bytes_counter=4)if(Command=0& tmp=A)Command=4;/语句类型 $GPGSAGSAF = 1;elseswitch(Command)case 1:GPGGA(tmp); break;case 2:GPRMC(tmp); brea

5、k;case 3:GPVTG(tmp); break;case 4:GPGSA(tmp);break;default:break;+Bytes_counter;NewByteF = 0;return;void GPGGA(uchar tmp)switch(Segment)if(Bytes_counter = 2 | Bytes_counter = 5) /$GPGGA 段 1, UTC 时间, hhmmss (时分秒)格式,取前6位 转换为HH:MM:SS 格式GPS_timeBytes_counter =:;+Bytes_counter;if(Bytes_counter8)GPS_timeB

6、ytes_counter = tmp;GPS_time8 = 0;break;if(Bytes_counter = 3)/$GPGGA 段 2 处理 纬度 ddmm.mmmm (度分)格式GPS_wdBytes_counter +Bytes_counter;接收第二个字节后插入GPS_wd11 = 0;if(Bytes_counter = 0) +Bytes_counter;GPS_wdBytes_counter break;=tmp;GPS_wd0 = tmp;或S (南半球)break;/$GPGGA第3段处理纬度半球N (北半球)if(Bytes_counter = 4)(度分)格式GP

7、S_jdBytes_counter = +Bytes_counter; GPS_jd12 = 0;if(Bytes_counter = 0) +Bytes_counter;GPS_jdBytes_counter = tmp; break;/$GPGGA 段 4 处理经度 dddmm.mmmm接收第3个字节后插入GPS_jd0 = tmp;W (西经)break;/$GPGGA第5段处理经度半球E (东经)或GPS_quality = tmp;break;/$GPGGA第7段处理 正在使用解算位置的卫if(Bytes_counter2)星数量(0012)(前面的0也将被传输)=tmp;GPS_s

8、vBytes_counterGPS_sv2 = 0;break;case 9: if(Bytes_counter7)/$GPGGA 第 9 段处理 海拔高度(-9999.999999.9 )GPS_altBytes_counter = tmp;break;default:break; void GPRMC(uchar tmp)switch(Segment)case 9:if(Bytes_counter1 & Bytes_counter3 & Bytes_counter6)GPS_dateBytes_counter-4GPS_date2GPS_date8 = 0;break;default:break;void GPGSA(uchar tmp)switch(Segment)case 2:GPS_status = tmp;2=2D定位,3=3D定位break;default:break;=tmp;/$GPGSA第2段处理 定位类型,1二没有定位,0000.01851.8 公里/小时,前面的0也将被传输)=tmp;=$;/这里4个字符是 Km/h=; ;=/;=#;=0;void GPVTG(uchar tmp)switch(Segment)case 7:if(Bytes_counter 7) 地面速率(GPS_speedBytes_counte

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论