資源簡(jiǎn)介
NMEA-0183協(xié)議定義的語(yǔ)句非常多,但是常用的或者說兼容性最廣的語(yǔ)句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。本代碼提供數(shù)據(jù)解析方法,語(yǔ)句格式詳解見 https://blog.csdn.net/u012572552/article/details/84587926

代碼片段和文件信息
//===================================================================
//?文件名稱: display.c
//?功能描述: 在終端上顯示GPS解析數(shù)據(jù)
//??????????????包GPS初始化、串口接收中斷,接收數(shù)據(jù)處理和串口打印等
//?維護(hù)記錄: 2010-01-31 V1.0?by?xgc
//??????????????2010-04-03??V1.1?by?xgc
//
//??代碼作者:??相廣超??xgc94418297.blog.163.com
//??程序說明:??本程序僅試用于TX2440系列開發(fā)板,使用的是2440串口2經(jīng)過數(shù)據(jù)
//??????????????選擇器擴(kuò)展出的串口。
//??????????????本程序僅提供了操作串口的方法和GPS數(shù)據(jù)解析的實(shí)現(xiàn)方法,供參考。
//??????????????更多的功能有待讀者自己開發(fā)?
//==================================================================
#include?
#include?
#include?“2440addr.h“
#include?“2440lib.h“
#include?“def.h“
#include?“gps.h“
#include?“uart.h“
#include?“display.h“
#define?UART2_CH0???0
#define?UART2_CH1 1
#define?LEDOFF?????rGPFDAT?=?0xFF
#define?LED1ON?????rGPFDAT?&=?~(0x01)
#define?LED2ON?????rGPFDAT?&=?~(0x02)
#define?LED3ON?????rGPFDAT?&=?~(0x04)
#define?LED1OFF????rGPFDAT?|=?0x01?
#define?LED2OFF????rGPFDAT?|=?0x02
#define?LED3OFF????rGPFDAT?|=?0x04
#define???REV_YES????LED1ON
#define???REV_NO?????LED1OFF
#define???RMC_YES????LED2ON
#define???RMC_NO?????LED2OFF
extern?unsigned?int?PCLK;
GPS_INFO???GPS;
volatile?U32?isRxInt;??//串口接收標(biāo)志
volatile?U32?gps_rGPHCONgps_rGPHDATgps_rGPHUP;
volatile?U32?gps_ULCON2gps_UCON2gps_UFCON2gps_UMCON2gps_UBRDIV2;
char?rev_buf[80];?//接收緩存
U8?rev_startrev_stopgps_flag;?//開始接收,停止接收,gps開始處理
U8?num?=?0;
void?__sub_Uart2_RxInt(void);
void?__sub_Uart2_RxErrInt(void);
void?__irq?Uart2_RxIntOrErr(void);
//========================================================================
//選擇串口2通道
//========================================================================
void?Select_Device(char?Device)
{
rGPHCON?|=?1<<(UART2_CH1<<1);
rGPHCON?&=?~(1<<(UART2_CH1<<1)+1);
rGPHCON?|=?1<<(UART2_CH0<<1);
rGPHCON?&=?~(1<<(UART2_CH0<<1)+1); ?//設(shè)置為輸出口
rGPHUP?&=(~(0x03));
rGPHDAT =(rGPHDAT&0xfffffffc)|(Device);
}
//========================================================================
//串口2設(shè)置
//========================================================================
void?GPS_Port_Set(void)
{
????gps_rGPHCON=rGPHCON;?
????gps_rGPHDAT=rGPHDAT;
????gps_rGPHUP=rGPHUP;
????rGPHCON&=0x3c0fff;
????rGPHCON|=0x2a000;
????rGPHUP|=0x1c0;
????//Push?Uart?control?registers?
????gps_ULCON2=rULCON2;
????gps_UCON2?=rUCON2;
????gps_UFCON2=rUFCON2;
????gps_UMCON2=rUMCON2;
????gps_UBRDIV2=rUBRDIV2;
}???????
//========================================================================
//串口2恢復(fù)設(shè)置
//========================================================================????????
void?GPS_Port_Return(void)
{???????
????rGPHCON=gps_rGPHCON;
????rGPHDAT=gps_rGPHDAT;
????rGPHUP?=gps_rGPHUP;
????//Pop?Uart?control?registers?
????rULCON2=gps_ULCON2;
????rUCON2?=gps_UCON2;
????rUFCON2=gps_UFCON2;
????rUMCON2=gps_UMCON2;
????rUBRDIV2=gps_UBRDIV2;
}
//========================================================================
//串口2接收中斷或接收
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-11-28?16:29??GPS模塊測(cè)試程序(ARM9)\
?????目錄???????????0??2018-01-19?17:10??GPS模塊測(cè)試程序(ARM9)\G4A\
?????文件??????195914??2010-04-17?10:28??GPS模塊測(cè)試程序(ARM9)\G4A\G4A.mcp
?????目錄???????????0??2018-01-17?17:08??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\
?????文件????????3454??2010-04-17?10:28??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\CWSettingsWindows.stg
?????目錄???????????0??2018-01-17?17:08??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\Debug\
?????文件???????50806??2010-04-17?10:26??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\Debug\TargetDataWindows.tdt
?????目錄???????????0??2018-01-17?17:08??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\DebugRel\
?????文件??????112324??2010-04-17?10:28??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\DebugRel\G4A.axf
?????文件???????34544??2010-04-17?10:28??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\DebugRel\G4A.bin
?????目錄???????????0??2018-01-17?17:08??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\DebugRel\ob
?????文件???????16360??2010-01-31?16:13??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\DebugRel\ob
?????文件???????38704??2010-01-31?16:13??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\DebugRel\ob
?????文件????????3254??2010-01-31?16:13??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\DebugRel\ob
?????文件???????14484??2010-04-17?10:26??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\DebugRel\ob
?????文件???????42024??2010-04-17?10:26??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\DebugRel\ob
?????文件???????37884??2010-04-17?10:26??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\DebugRel\ob
?????文件???????10472??2010-04-17?10:28??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\DebugRel\ob
?????文件???????42680??2010-01-31?16:13??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\DebugRel\ob
?????文件???????89146??2010-04-17?10:28??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\DebugRel\TargetDataWindows.tdt
?????目錄???????????0??2018-01-17?17:08??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\Release\
?????文件???????49432??2010-04-17?10:26??GPS模塊測(cè)試程序(ARM9)\G4A\G4A_Data\Release\TargetDataWindows.tdt
?????文件????????8711??2010-04-17?10:26??GPS模塊測(cè)試程序(ARM9)\G4A\display.c
?????文件?????????488??2010-04-12?10:07??GPS模塊測(cè)試程序(ARM9)\G4A\display.h
?????文件????????4968??2010-04-17?10:20??GPS模塊測(cè)試程序(ARM9)\G4A\gps.c
?????文件?????????931??2010-04-16?23:03??GPS模塊測(cè)試程序(ARM9)\G4A\gps.h
?????文件???????12704??2010-04-07?11:47??GPS模塊測(cè)試程序(ARM9)\G4A\gps_back.c
?????文件????????2058??2010-04-17?10:27??GPS模塊測(cè)試程序(ARM9)\G4A\main.c
?????目錄???????????0??2012-08-27?17:22??GPS模塊測(cè)試程序(ARM9)\G4A\system\
?????目錄???????????0??2018-01-17?17:08??GPS模塊測(cè)試程序(ARM9)\G4A\system\inc\
?????文件???????40113??2009-10-17?11:50??GPS模塊測(cè)試程序(ARM9)\G4A\system\inc\2440addr.h
............此處省略28個(gè)文件信息
評(píng)論
共有 條評(píng)論