• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: C/C++
  • 标签: GPS  

资源简介

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

     文件         65  2018-08-13 10:16  test.txt

----------- ---------  ---------- -----  ----

                13690                    5


评论

共有 条评论