資源簡介
51單片機GPS程序,C語言,很好的開發(fā)資料

代碼片段和文件信息
//#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
評論
共有 條評論