Skip to content

ShineRoyal/nmealib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4c4abb7 · Aug 3, 2020

History

10 Commits
Aug 3, 2020
Aug 3, 2020
Aug 1, 2020
Aug 2, 2020
Aug 1, 2020
Aug 3, 2020
Aug 2, 2020

Repository files navigation

nmealib

1、介绍

这是一个NMEA Library在RT-Thread上的移植。

1.1 目录结构

名称 说明
docs 文档目录
examples 例子目录,并有相应的一些说明
include 头文件目录
src 源代码目录

1.2 许可证

nmealib 遵循 LGPLv2.1 许可,详见 LICENSE 文件。

1.3 依赖

  • RT-Thread 3.0+

2、如何打开 nmealib

使用 nmealib package 需要在 RT-Thread 的包管理器中选择它,具体路径如下:

RT-Thread online packages
    IoT - internet of things --->
        [*] nmealib: A NMEA Library for RT-Thread
            [*] Enable nmealib uart sample
            (uart3) uart name e.g. uart3
            (9600)  uart baudrate used by sample
            [*] Enable nmealib trace and error
                Version(v1.0.0)

Enable nmealib uart sample用于使能串口接收GPS数据并解析的示例,Enable nmealib trace and error用于使能DEBUG调试信息。

然后让 RT-Thread 的包管理器自动更新,或者使用 pkgs --update 命令更新包到 BSP 中。

3、使用 nmealib

在打开 nmealib package 后,当进行 bsp 编译时,它会被加入到 bsp 工程中进行编译。

3.1 创建解码所需要的变量

nmeaINFO info;          //GPS解码后得到的信息
nmeaPARSER parser;      //解码时使用的数据结构

3.2 初始化nmeaINFO和nmeaPARSER结构体

nmea_zero_INFO(&info);
nmea_parser_init(&parser);

3.3 数据解析

nmea_parse(&parser, (const char *) &data_buffer[0], data_length, &info);

data_buffer保存GPS模块发送过来的NMEA协议字符串,data_length保存字符串的长度,如果接收的字符串内容不完整,将保存至parser中,待接收完一个完整的NMEA字符串后,把解析的内容存入info中。

4、注意事项

nmealib库仅支持GPGGAGPGSAGPGSVGPRMCGPVTG语句的解析。 某些支持多卫星GPS模块,其输出可能是混合输出,此时无法完成正确解析。

5、联系方式 & 感谢