gps
上一节,我们介绍了GPS模块的串口返回数据的格式及其含义,本节我们介绍使用Arduino单片机解析数据.
先将原始数据放这里
| $GNGGA,152951.000,2233.19011,N,11353.88316,E,1,5,1.45,44.36,M,-2.80,M,,*67 | | $GNGSA,A,3,13,195,15,18,29,,,,,,,,1.75,1.45,0.97,1*35 | | $GNGSA,A,3,,,,,,,,,,,,,1.75,1.45,0.97,4*09 | | $GNGSA,A,3,,,,,,,,,,,,,1.75,1.45,0.97,2*0F | | $GNGSA,A,3,,,,,,,,,,,,,1.75,1.45,0.97,3*0E | | $GPGSV,4,1,13,15,70,326,19,199,65,055,,13,48,031,31,195,47,159,27,1*65 | | $GPGSV,4,2,13,29,43,244,23,05,39,049,30,18,36,326,22,24,36,172,14,1*67 | | $GPGSV,4,3,13,02,31,137,,40,28,252,20,20,24,077,20,194,16,143,,1*56 | | $GPGSV,4,4,13,23,15,296,,1*5E | | $GPGSV,1,1,00,8*6D | | $GLGSV,1,1,00,1*78 | | $GAGSV,1,1,00,1*75 | | $GAGSV,1,1,00,2*76 | | $GAGSV,1,1,00,3*77 | | $BDGSV,1,1,00,1*75 | | $BDGSV,1,1,00,2*76 | | $BDGSV,1,1,00,4*70 | | $BDGSV,1,1,00,5*71 | | $GNRMC,152951.000,A,2233.19011,N,11353.88316,E,0.000,56.05,100422,,,A,V*0B | 其中用到的数据有两条,分别是
$GNGGA,152951.000,2233.19011,N,11353.88316,E,1,5,1.45,44.36,M,-2.80,M,,*67
$GNRMC,152951.000,A,2233.19011,N,11353.88316,E,0.000,56.05,100422,,,A,V*0B
第一条是GPS的数据,第二条是北斗的数据
单片机我用的型号是Arduino MEGA2560,这款单片机有多个串口,如果你用其他型号的Arduino,
请使用虚拟串口。
Arduino单片机打印函数,将解析出来的数据打印在串口0上
复制出来的数据
| Position Valid | | Date:100422 | | UTCtime:154639.000 | | Latitude:2233.20426N | | Longitude:11353.86120E | | GPStatus:1 | | SatelliteNum:7 | | HDOPfactor:1.69 | | Height:49.24 | | Speed:0.000 | | Direction:300.27 | | Declination: | | Mode:A |
含义分别是:
1 工作正常状态
2 日期
3 UTC时间
4 纬度
5 经度
6 GPS状态
7 卫星数
8 高度
9 速度
10 方向
11 赤纬
12 GPS模式
至此为止,数据解析完成。
写在最后,这款GPS模块精度还是不错的,使用也很简单。良心产品!!!
|