Module GP-635T GPS模块下降数据

Module GP-635T GPS模块下降数据,module,gps,arduino,Module,Gps,Arduino,我有一个GP-635T GPS模块连接到我的Arduino UNO GPS TX->UNO RX[Pin 0]上,使用串行接口 然后,我只需逐个字节地读取传入数据,并在读取时将它们添加到字符串中,当我到达换行符13时,我只需打印完整的数据字符串,并为下一次运行重置数据字符串 代码: 此代码按原样工作。但这里的问题是我从中得到的数据 该模块使用NMEA-0183标准以1Hz的频率打印出多条数据线。我不知道它是如何决定何时打印什么的,因为对于几乎完整的数据集,超过5次打印的数据不一致 例: 我想你

我有一个GP-635T GPS模块连接到我的Arduino UNO GPS TX->UNO RX[Pin 0]上,使用串行接口

然后,我只需逐个字节地读取传入数据,并在读取时将它们添加到字符串中,当我到达换行符13时,我只需打印完整的数据字符串,并为下一次运行重置数据字符串

代码:

此代码按原样工作。但这里的问题是我从中得到的数据

该模块使用NMEA-0183标准以1Hz的频率打印出多条数据线。我不知道它是如何决定何时打印什么的,因为对于几乎完整的数据集,超过5次打印的数据不一致

例:

我想你明白了,我只有连接到Arduino的GPS。 我尝试过用一些无线模块无线发送数据,但没有改变。 我曾尝试使用AltSoftSerial和SoftwareSerial,但后者的数据更混乱。 我尝试过不同的波特率,但运气不好

有人知道为什么会这样吗?这个模块是全新的,我不知道它为什么会这样


注意:我家里没有很好的GPS信号发送到我的模块,我试着带着它出去,看看是否能从大约3颗卫星那里得到信号,但这并没有改变输出。

这是一个非常奇怪的问题,当我将延迟从100毫秒缩短到10毫秒时,问题就消失了。 它可能与缓冲区有关,可能在我开始从缓冲区读取字节之前它就溢出了

然而,如果其他人也有同样的问题,缩短循环延迟,你应该会没事的

void setup()
{
  Serial.begin(9600);
  Serial.println("Initialized Serial port..");
}

String data = "";

void loop()
{
  while(Serial.available())
  {
    char gpsByte = Serial.read();// Read a byte from the GPS
    data += gpsByte;
    if(gpsByte == 13){
      Serial.print(data);
      data = "";
    }
  }
  delay(100);
}
$GPGGA,213948.00,,,,,0,00,99.99,,,,,,*63
$GPGSA,A30                                <--- A30?
$GPGSV,1,1,01,29,,,30*70
$GPGLL,,,,,213948.00,V,N*4F
$GPRMC,213949.00,V,,,,,,,290314,,,N*74
$GPVTG,,,,,,,,,N*30
$GPGGA,213949.00,,,,,0,00,99.99,,,,,,*62
$GPGSA,A,1,,,,PGSV,1,1,01,29,,,30*70      <--- PGSV?
$GPGLL,,,,,213949.00,V,N*4E
$GPRMC,213950.00,V,,,,,,,290314,,,N*7C
$GPVTG,,,,,,,,,N*30
$GPGGA,213950.00,,,,,0,00,99.99,,,,,,*6A
$GPGGA,214045SA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,01,29,,,30*70$GPRMC,214046.00,V,,,,,,,290314,,,N*75 <--- Missing linebreak?
$GPVTG,,,,,,,,,N*30
$G00,99.99,,,,,,*63                                        <--- $G00??
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,02,20,,,27,29,,,30*74
$GPGLL,$GPRMC,214047.00,V,,,,,,,290314,,,N*74  <--- Missing data?
$GPVTG,,,,,,,,,N*30
$GPGGA,214047.00,,,,,0,00,99.99,,,,,,*62
$,99.99*30                                   <--- Alot of missing data