这是一个NMEA Library在RT-Thread上的移植。
名称 | 说明 |
---|---|
docs | 文档目录 |
examples | 例子目录,并有相应的一些说明 |
include | 头文件目录 |
src | 源代码目录 |
nmealib 遵循 LGPLv2.1 许可,详见 LICENSE
文件。
- RT-Thread 3.0+
使用 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 中。
在打开 nmealib package 后,当进行 bsp 编译时,它会被加入到 bsp 工程中进行编译。
nmeaINFO info; //GPS解码后得到的信息
nmeaPARSER parser; //解码时使用的数据结构
nmea_zero_INFO(&info);
nmea_parser_init(&parser);
nmea_parse(&parser, (const char *) &data_buffer[0], data_length, &info);
data_buffer
保存GPS模块发送过来的NMEA协议字符串,data_length
保存字符串的长度,如果接收的字符串内容不完整,将保存至parser
中,待接收完一个完整的NMEA字符串后,把解析的内容存入info
中。
nmealib库仅支持GPGGA
、GPGSA
、GPGSV
、GPRMC
、GPVTG
语句的解析。
某些支持多卫星GPS模块,其输出可能是混合输出,此时无法完成正确解析。
- 维护:ShineRoyal
- 主页:https://github.com/ShineRoyal/nmealib
- nmea官网:http://nmea.sourceforge.net/