GPS接收到的数据格式及含义 如果此时GPS和卫星的通讯正常的话,可以接收到的数据格式样如下:
$GPRMC,204700,A,3403.868,N,11709.432,W,001.9,336.9,170698,013.6,E*6E
数据说明如下:
$GPRMC 代表GPS推荐的最短数据
204700 UTC_TIME 24小时制的标准时间,按照小时/分钟/秒的格式
A A 或者 V A表示数据"OK",V表示一个警告
3403.868 LAT 纬度值,精确到小数点前4位,后3位
N LAT_DIR N表示北纬,S表示南纬
11709.432 LON 经度值,精确到小数点前5位,后3位
W LON_DIR W表示西经,E表示东经
若当前没有和卫星取得联系,那么字符串的格式为: $GPRMC,UTC_TIME,V,...
扩展资料
没有解析出正确的字段,我们很容易定位是sscanf那条语句出了问题,由于我之前没用过这个函数,为此我上网查了好久这个函数的用法,后来把思路转向对比作者的GPRMC语句和我收到的GNRMC语句,除了开头不同,其他地方的差异,
$GPRMC,131913.000,A,3029.64972,N,11423.62352,E,0.00,0.00,200617,,,A*67
$GNRMC,085959.00,A,4000.73433,N,11628.03429,E,0.461,,280220,6.91,W,D*29
发现有以下几处的不同,
1) 字段1:UTC时间这里,他的小数点后面是3个0,但我的是2个0
2) 字段8:方位角这里,他的值是0.00,我的是空白
3) 字段11和12,磁偏角及磁偏角方向,他的是空白,我的有值
正是这3处不同,导致的上述解析不正确。原作者完全是按照他的GPS数据格式来写的代码,只要有任何一处不同,就会出现解析错误。