|
|
hace 5 años | |
|---|---|---|
| docs | hace 5 años | |
| examples | hace 5 años | |
| include | hace 5 años | |
| src | hace 5 años | |
| LICENSE | hace 5 años | |
| README.md | hace 5 años | |
| SConscript | hace 5 años |
这是一个NMEA Library在RT-Thread上的移植。
| 名称 | 说明 |
|---|---|
| docs | 文档目录 |
| examples | 例子目录,并有相应的一些说明 |
| include | 头文件目录 |
| src | 源代码目录 |
nmealib 遵循 LGPLv2.1 许可,详见 LICENSE 文件。
使用 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模块,其输出可能是混合输出,此时无法完成正确解析。