资源简介
单片机51读取GPS NMEA0183格式及解析;uart.h ,uart.c串口中断程序;gps.c,gps.h 读取GPS NMEA数据及解析位置,时间,和卫星状态。主要包括了GGA和RMC数据读取及解析;时区调整。采用的是upsd3300单片机(51系列);

代码片段和文件信息
/*************************************************/
//项 目:水利数码通
//文件名:UART.C
//功 能: 串口0、1数据收发处理,软件串口处理
//作 者:杨世峰
//日 期:2004-03-13
/*************************************************/
#include “upsd3300.h“
#include “hardware.h“
#include “gps.h“
#include “uart.h“
#include “string.h“
#include “const.h“
//////////////////////////////////
//====================变量定义=====================
extern uchar idata ucGpsCommandStatus;//GPS信息处理状态机
extern uchar xdata ucGPSCommand[8];//GPS命令标识头
extern uchar xdata ucGPSDataBuff[82];//GPS数据缓存
extern uchar xdata ucCheckSum[2];//GPS命令校验字节
extern uchar idata ucGPSBuffCnt;
//每月最大天数表
extern uchar xdata GPS_Date[];
extern uint idata unInBufCntComm1; //缓冲区计数
extern union ByteToFloatOrLong xdata ByteChang;
///////////////////////////////////
extern INFO_GPS xdata InfoGPS;
extern INFO_GPS xdata NowInfoGPS;//实时gps 信息
extern INFO_STAR xdata ucSNR[12];
////////////////////////////////////
//=================================================
//GPS数据处理主循环
//=================================================
void GPS_ProcessNMEA(void)
{
uchar idata uch0;
while(unInBufCntComm1)
{
switch (ucGpsCommandStatus)
{
case 0:
{
ReadCharComm1(&uch0);
if (uch0==‘$‘)
{
ucGpsCommandStatus++;
}
break;
}
case 1:
{
ReadCharComm1(&uch0);
if (uch0==‘G‘)
ucGpsCommandStatus++;
else
ucGpsCommandStatus=0;
break;
}
case 2:
{
ReadCharComm1(&uch0);
if (uch0==‘P‘)
ucGpsCommandStatus++;
else
ucGpsCommandStatus=0;
break;
}
case 3:
{
if(unInBufCntComm1 >= 3)
{
ReadCharComm1(&ucGPSCommand[0]);
ReadCharComm1(&ucGPSCommand[1]);
ReadCharComm1(&ucGPSCommand[2]);
ucGPSCommand[3] = ‘\0‘;
ucGPSDataBuff[0] = ‘G‘;
ucGPSDataBuff[1] = ‘P‘;
strcpy(ucGPSDataBuff+2ucGPSCommand);
ucGPSBuffCnt = 5;
ucGpsCommandStatus++;
}
break;
}
case 4: //process command
{
if(unInBufCntComm1 < 2)
break;
else
{
if(ucGPSBuffCnt>80)
{
ucGpsCommandStatus = 0;
break;
}
ReadCharComm1(ucGPSDataBuff+ucGPSBuffCnt);
ReadCharComm1(ucGPSDataBuff+ucGPSBuffCnt+1);
if((ucGPSDataBuff[ucGPSBuffCnt] ==‘\r‘)\
&&(ucGPSDataBuff[ucGPSBuffCnt+1] ==‘\n‘))
{
ucCheckSum[0] =ucGPSDataBuff[ucGPSBuffCnt-2] - 0x30;
ucCheckSum[1] =ucGPSDataBuff[ucGPSBuffCnt-1] - 0x30;;
if(GPS_CheckCommand())
{
ProcessGPSCommand();
}
ucGpsCommandStatus=0;
break;
}
else
{
if(ucGPSDataBuff[ucGPSBuffCnt+1] ==‘\r‘)
ucGpsCommandStatus++;
}
ucGPSBuffCnt+=2;
}
break;
}//end of case 4
case 5:
{
if(ucGPSBuffCnt>81)
{
ucGpsCommandStatus = 0;
break;
}
ReadCharComm1(ucGPSDataBuff+ucGPSBuffCnt);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11665 2008-07-08 14:44 gpsnmea\gps.c
文件 1711 2006-04-29 05:22 gpsnmea\gps.h
文件 6301 2008-07-08 14:43 gpsnmea\uart.c
文件 1068 2006-04-27 16:50 gpsnmea\uart.h
文件 211 2008-07-08 15:16 gpsnmea\说明.txt
目录 0 2008-07-08 15:12 gpsnmea
----------- --------- ---------- ----- ----
20956 6
相关资源
- 武汉大学 科傻GPS 静态后处理软件
- 开源的nmealib
- 相干与非相干实现捕获与跟踪GPS
- 天文钟GPS对时程序
- 用切比雪夫多项式标准化GPS卫星轨道
- 起算点点位不同对GPS-RTK测高的影响
- GPS-RTK技术在公婆泉矿区详查中的应用
-
A web-ba
sed interview platform with geospat - 根据GPS数据计算航向公式
- Excel在GPS坐标转换计算中的应用
- GPS-RTK技术及EPSW全息测绘软件在沉陷治
- 基于GPS数据的露天矿道路网自动提取
- 基于GPS-RTK与全站仪的城市道路改扩建
- GPS-RTK、全站仪联合作业在化石沟铜矿
- 基于GPS一机多天线技术的尾矿坝全自
- GPS技术在山区边坡监测中的应用
- GPS-RTK与全站仪联合作业在山谷型采石
- 论变形监测技术的现状与发展趋势
- GPS技术在大采深采区建筑物变形监测
- 探讨GPS技术在地形复杂矿山变形监测
- 全球地名地址及GPS坐标数据库
- 工作/生活照片归档管理/Exif查看器/
- gps程序、算法
- STM32+陀螺仪+GPS代码
- 基于单片机的GPS定位及显示系统设计
- GPS模拟仿真GPS卫星定位模拟仿真
- GPS数据转换X.Y坐标
- 伊敏露天矿三期卡车调度系统应用效
- STM32+BC20通过HTTP传输GPS北斗定位到湖畔
- NemaStudio1.36 NMEA模拟工具软件最新+注册
评论
共有 条评论