资源简介
51单片机GPS程序,C语言,很好的开发资料
代码片段和文件信息
//#include
#include “MEMALLOC.h“
#include “CustomDef.h“
#include “ebd_ex_ram_map.h“
#include “MCUNMEAParser.h“
#include “usb.h“
#include “reg52.h“
#include “Wt_spi.h“
#include
#define MAX_NMEAMSG_LEN 0xFF
#define MAX_UNIT_SIZE 25
#define NMEA_MSG_START 0
#define NMEA_MSG_HEAD 1
#define GPRMC_TIME 2
#define GPRMC_STATUS 3
#define GPRMC_LATITUDE 4
#define GPRMC_NS 5
#define GPRMC_LONGITUDE 6
#define GPRMC_EW 7
#define GPRMC_SPEED 8
#define GPRMC_COURSE 9
#define GPRMC_DATE 10
#define GPRMC_MAGNETIC 11
#define GPRMC_VARIATION 12
#define GPRMC_MODE 13
#define GPRMC_CHECKSUM1 14
#define GPRMC_CHECKSUM2 15
#define GPRMC_CR 16
#define GPRMC_LF 17
#define GPGGA_TIME 20
#define GPGGA_LATITUDE 21
#define GPGGA_NS 22
#define GPGGA_LONGITUDE 23
#define GPGGA_EW 24
#define GPGGA_FIX_INDICATOR 25
#define GPGGA_SATELITES_USED 26
#define GPGGA_HDOP 27
#define GPGGA_MSL_ALTITUDE 28
#define GPGGA_ALTITUDE_UNIT 29
#define GPGSA_MODE_1 40
#define GPGSA_MODE_2 41
#define GPGGA_MSG 1
#define GPGSA_MSG 2
#define GPRMC_MSG 4
#define INVALID_MSG (GPGGA_MSG+GPGSA_MSG+GPRMC_MSG)
UCHAR g_ucNMEAParseState = NMEA_MSG_START;
UCHAR g_ucMSGIndex = 0;
UCHAR idata g_ucMSGType = 0;
UCHAR idata g_ucFixMode = FIX_NOT_AVAILABLE;
UCHAR pdata g_ucaUTCTime[UTC_TIME_SIZE] _at_ UTC_TIME_ADDR;
UCHAR pdata g_ucaLatitude[LATITUDE_SIZE] _at_ LATITUDE_ADDR;
UCHAR pdata g_ucLatitudeIndicator _at_ LATITUDE_INDICATOR_ADDR;
UCHAR pdata g_ucaLongitude[LONGITUDE_SIZE] _at_ LONGITUDE_ADDR;
UCHAR pdata g_ucLongitudeIndicator _at_ LONGITUDE_INDICATOR_ADDR;
UCHAR pdata g_ucaDate[DATE_SIZE] _at_ DATE_ADDR;
UCHAR pdata g_ucaAltitude[ALTITUDE_SIZE] _at_ ALTITUDE_ADDR;
UCHAR pdata g_ucaSpeed[SPEED_SIZE] _at_ SPEED_ADDR;
#define STR_HEAD_SIZE 5
UCHAR code g_strGPGGA[STR_HEAD_SIZE+1] = “GPGGA“;
UCHAR code g_strGPGSA[STR_HEAD_SIZE+1] = “GPGSA“;
UCHAR code g_strGPRMC[STR_HEAD_SIZE+1] = “GPRMC“;
UCHAR* ucpCheckSum;
//unsigned char ucCheckSum;
void NMEAParserInit( void )
{
UCHAR i;
g_ucNMEAParseState = NMEA_MSG_START;
g_ucMSGIndex = 0;
g_ucMSGType = INVALID_MSG;
for( i=0; i {
g_ucaUTCTime[i] = 0;
}
}
void ParseNMEAChar( UCHAR g_ucNMEAChar )
{
unsigned char ucLoop;
//Delayms(1);
//putchar( ‘-‘ );
//putchar( (g_ucNMEAParseState / 10)+‘0‘ );
//putchar( (g_ucNMEAParseState%10)+‘0‘ );
//putchar( ‘-‘ );
//putchar( g_ucNMEAChar );
switch( g_ucNMEAParseState )
{
// 0
case NMEA_MSG_START:
if( START_FLAG==g_ucNMEAChar )
{
g_ucNMEAParseState = NMEA_MSG_HEAD;
g_ucMSGIndex = 0;
}
break;
// 1
case NMEA_MSG_HEAD:
if( g_ucMSGIndex {
if( g_ucNMEAChar!=g_strGPGGA[g_ucMSGIndex])
{
g_ucMSGType &= ~GPGGA_MSG;
}
if( g_ucNMEAChar!=g_strGPGSA[g_ucMSGIndex]
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2207 2008-07-07 09:58 NMEA parser\ebd_ex_ram_map.h
文件 10585 2008-09-05 18:10 NMEA parser\MCUNMEAParser.c
文件 833 2008-07-05 09:29 NMEA parser\MCUNMEAParser.h
目录 0 2008-09-05 18:10 NMEA parser
----------- --------- ---------- ----- ----
13625 4
- 上一篇:C语言 真值表
- 下一篇:课程设计哲学家就餐问题报告+代码C++语言
相关资源
- gps定位解算
- GSM发短信 GPS 单片机C语言实现
- GPS车辆监控系统源代码
- C语言的读取GPS源码
- 头文件GPS.h
- 基于MATLAB使用C语言的读取GPS的rinex的
- GPS卫星定位-实时位置计算程序-VC++源
- gps-gsm的仿真程序 c语言
- GPS时间转换
- NMEA0183解析 c++
- GPS单点定位完整代码txt版C++,还有r
- C++实现GPS的单点定位
- BDS/GPS导航定位C/C++从Txt文件读取和写
- 应用Visual+C++平台的GPS精密单点定位程
- GPS卫星位置的计算
- 用广播星历计算卫星位置
- stm32f103+GPS+GPRS
- gps模块发送数据到云服务器(gpssend
- 用stm32做处理的GPS定位系统
- stm32 + gprs + gps +googleearth + vc6.0 + 数据
- VC++实现GPS数据采集与提取的软件编程
- DBSCAN聚类C++算法,可用于GPS车辆聚集
- MFC从串口读取GPS信息
- C++读取GPS程序
- GPS网平差C++版
- GPS接收机捕获跟踪和PVT源代码
评论
共有 条评论