北斗/GPS都是用的nmea通用协议。

NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。

1、NMEA library
开源的NMEA library就够用了,而且至今也没发现有比这个更好的解析库
支持: GPGGA, GPGSA, GPGSV, GPRMC, GPVTG
跨平台,支持如下编译环境
  • Microsoft Windows (MS Visual Studio 8.0, GCC)
  • Windows Mobile, Windows CE (MS Visual Studio 8.0)
  • UNIX (GCC)

http://nmea.sourceforge.net/

有人建了个eclipse工程,这些库建工程很繁琐,偷懒无罪。

https://github.com/AHR-Project/nmealib

也有人建了个IAR(cortex-m3)的工程

http://blog.csdn.net/xukai871105/article/details/12834421

或者代码仓库里有完整的可测试项目https://bitbucket.org/xukai871105/

2、GPS Library

之前在cortex-m3上调过北斗并且在cortex-m4上调过GPS,也都是在网上找了个现成的解析实例,这种大众化的模块不用重复造轮子了,我们宝贵的时间应该用来做更宝贵的事。

Library 27- Read GPS data on STM32F4 devices

Features

  • Parse GPS data
  • Supported NMEA 0183 standard
  • Works with GPGGA, GPRMC, GPGSA, GPGSV NMEA statements
  • Version 1.1 – August 22, 2014
    • Calculate distance between 2 coordinates
    • Calculate bearing between 2 coordinates
  • Allows you to select custom NMEA statements

http://stm32f4-discovery.com/2014/08/library-27-gps-stm32f4-devices/

完整的库文件和工程在github

https://github.com/MaJerle/stm32f429

 
05-02 11:40