• 大小: 255KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: 其他
  • 标签: GPS  NMEA-0183  

资源简介

NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。本代码提供数据解析方法,语句格式详解见 https://blog.csdn.net/u012572552/article/details/84587926

资源截图

代码片段和文件信息

//===================================================================
// 文件名称: display.c
// 功能描述: 在终端上显示GPS解析数据
//              包GPS初始化、串口接收中断,接收数据处理和串口打印等
// 维护记录: 2010-01-31 V1.0 by xgc
//              2010-04-03  V1.1 by xgc
//
//  代码作者:  相广超  xgc94418297.blog.163.com
//  程序说明:  本程序仅试用于TX2440系列开发板,使用的是2440串口2经过数据
//              选择器扩展出的串口。
//              本程序仅提供了操作串口的方法和GPS数据解析的实现方法,供参考。
//              更多的功能有待读者自己开发 
//==================================================================

#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;  //串口接收标志
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);  //设置为输出口

rGPHUP &=(~(0x03));
rGPHDAT =(rGPHDAT&0xfffffffc)|(Device);
}

//========================================================================
//串口2设置
//========================================================================
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恢复设置
//========================================================================        
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接收中断或接收

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-28 16:29  GPS模块测试程序(ARM9)\
     目录           0  2018-01-19 17:10  GPS模块测试程序(ARM9)\G4A\
     文件      195914  2010-04-17 10:28  GPS模块测试程序(ARM9)\G4A\G4A.mcp
     目录           0  2018-01-17 17:08  GPS模块测试程序(ARM9)\G4A\G4A_Data\
     文件        3454  2010-04-17 10:28  GPS模块测试程序(ARM9)\G4A\G4A_Data\CWSettingsWindows.stg
     目录           0  2018-01-17 17:08  GPS模块测试程序(ARM9)\G4A\G4A_Data\Debug\
     文件       50806  2010-04-17 10:26  GPS模块测试程序(ARM9)\G4A\G4A_Data\Debug\TargetDataWindows.tdt
     目录           0  2018-01-17 17:08  GPS模块测试程序(ARM9)\G4A\G4A_Data\DebugRel\
     文件      112324  2010-04-17 10:28  GPS模块测试程序(ARM9)\G4A\G4A_Data\DebugRel\G4A.axf
     文件       34544  2010-04-17 10:28  GPS模块测试程序(ARM9)\G4A\G4A_Data\DebugRel\G4A.bin
     目录           0  2018-01-17 17:08  GPS模块测试程序(ARM9)\G4A\G4A_Data\DebugRel\objectCode\
     文件       16360  2010-01-31 16:13  GPS模块测试程序(ARM9)\G4A\G4A_Data\DebugRel\objectCode\2440init.o
     文件       38704  2010-01-31 16:13  GPS模块测试程序(ARM9)\G4A\G4A_Data\DebugRel\objectCode\2440lib.o
     文件        3254  2010-01-31 16:13  GPS模块测试程序(ARM9)\G4A\G4A_Data\DebugRel\objectCode\2440slib.o
     文件       14484  2010-04-17 10:26  GPS模块测试程序(ARM9)\G4A\G4A_Data\DebugRel\objectCode\algorithm.o
     文件       42024  2010-04-17 10:26  GPS模块测试程序(ARM9)\G4A\G4A_Data\DebugRel\objectCode\display.o
     文件       37884  2010-04-17 10:26  GPS模块测试程序(ARM9)\G4A\G4A_Data\DebugRel\objectCode\gps.o
     文件       10472  2010-04-17 10:28  GPS模块测试程序(ARM9)\G4A\G4A_Data\DebugRel\objectCode\main.o
     文件       42680  2010-01-31 16:13  GPS模块测试程序(ARM9)\G4A\G4A_Data\DebugRel\objectCode\uart.o
     文件       89146  2010-04-17 10:28  GPS模块测试程序(ARM9)\G4A\G4A_Data\DebugRel\TargetDataWindows.tdt
     目录           0  2018-01-17 17:08  GPS模块测试程序(ARM9)\G4A\G4A_Data\Release\
     文件       49432  2010-04-17 10:26  GPS模块测试程序(ARM9)\G4A\G4A_Data\Release\TargetDataWindows.tdt
     文件        8711  2010-04-17 10:26  GPS模块测试程序(ARM9)\G4A\display.c
     文件         488  2010-04-12 10:07  GPS模块测试程序(ARM9)\G4A\display.h
     文件        4968  2010-04-17 10:20  GPS模块测试程序(ARM9)\G4A\gps.c
     文件         931  2010-04-16 23:03  GPS模块测试程序(ARM9)\G4A\gps.h
     文件       12704  2010-04-07 11:47  GPS模块测试程序(ARM9)\G4A\gps_back.c
     文件        2058  2010-04-17 10:27  GPS模块测试程序(ARM9)\G4A\main.c
     目录           0  2012-08-27 17:22  GPS模块测试程序(ARM9)\G4A\system\
     目录           0  2018-01-17 17:08  GPS模块测试程序(ARM9)\G4A\system\inc\
     文件       40113  2009-10-17 11:50  GPS模块测试程序(ARM9)\G4A\system\inc\2440addr.h
............此处省略28个文件信息

评论

共有 条评论