关于SIM28ML中NMEA格式输出设置

最近项目中用到了SIM28ML这款GPS,该型号尺寸较小,适合小尺寸设计要求。

SIM28ML模块通过串口输出NMEA格式的定位数据,包括GPGLL、GPRMC、GPVTG、GPGGA、GPGSA、GPGSV、GPZDA等格式的数据,对于开发者而言,有些数据是多余的,有时只需要包含定位信息的GPGLL语句即可。那么怎么筛选出适合自己需求的数据呢,这就需要通过串口输入特定的指令给SIM28ML模块。如

$PMTK314,1,1,1,1,1,5,0,0,0,0,0,0,0,0,0,0,0,1,0*2D<CR><LF>

$PMTK314后面的每一位都是对应下面NMEA单独语句

0 NMEA_SEN_GLL,         // GPGLL interval - Geographic Position - Latitude longitude 

1 NMEA_SEN_RMC,       // GPRMC interval - Recomended Minimum Specific GNSS Sentence 

2 NMEA_SEN_VTG,        // GPVTG interval - Course Over Ground and Ground Speed 

3 NMEA_SEN_GGA,       // GPGGA interval - GPS Fix Data 

4 NMEA_SEN_GSA,        // GPGSA interval - GNSS DOPS and Active Satellites 

5 NMEA_SEN_GSV,        // GPGSV interval - GNSS Satellites in View 

6 NMEA_SEN_GRS,        // GPGRS interval - GNSS Range Residuals 

7 NMEA_SEN_GST,        // GPGST interval - GNSS Pseudorange Erros Statistics 

13 NMEA_SEN_MALM,  // PMTKALM interval - GPS almanac information 

14 NMEA_SEN_MEPH,  // PMTKEPH interval - GPS ephmeris information 

15 NMEA_SEN_MDGP,  // PMTKDGP interval - GPS differential correction information 

16 NMEA_SEN_MDBG,  // PMTKDBG interval – MTK debug information 

17 NMEA_SEN_ZDA,      // GPZDA interval – Time & Date 

18 NMEA_SEN_MCHN,  // PMTKCHN interval – GPS channel status

每一位都可以进行设置如0——关闭该语句;1——位置每修正1次输出;2——5同理;

那么我们只需要GPGLL语句则只需要将指令设置为$PMTK314,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29即可,*后面的两位ASCII是校验和。如何计算校验和呢,

则需要将$和*之间的数据(不包含$和*)转换成HEX格式,然后把所有的数据进行异或就能得出校验和,如将上面的指令转换成HEX

50 4D 54 4B 33 31 34 2C 31 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30

根据异或的特点除去偶数重复的数据,得到50 4D 54 4B 33 31 34 2C 31 2C 30 2C 30再进行异或计算就得到29。最后输出如下图所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值