以前搞过很多次gps解码的实验,经常碰到有的朋友反映说,不定位时正常,一旦gps定位,时间就停止不走了。直到今天再次碰到这个问题,才发现了它的本质原因。现在写下来,希望对碰到这个问题的朋友能有帮助。
moto的模块,支持了许多种语句的输出。模块每秒钟会输出这些语句一次。当未定位时,模块每秒输出的数据量比较少,但定位后,数据量会增加很多(比未定位时多了经纬度、方位角、速度、高度、卫星仰角方位角信噪比等信息,其中以卫星信息gpgsv数据量最多,因为每个卫星的数据都要输出)。
moto模块在nema格式输出时,速率是4800bps的,就是每秒钟只能传送480字节的字符。但定位后,输出信息量增加,已经超过了每组480字节,而gps是每秒输出一次的。这时,最后准备传送的字节,就被gps模块给丢弃了,因为已经开始输出下1秒钟的数据了。而gpzda语句,基本上是排在其他语句之后来输出的,于是就产生了这种未定位走时正常,定位后时间停止的问题了。
所以,解决这个的方法就是用moto模块的设置软件,关闭掉不需要使用的语句(如gpgll、gpgsa、gpvtg等)。