neo-7m reset + change rate

Нет ответов
Oput
Offline
Зарегистрирован: 11.11.2017

Добрый. Я хочу просто сбросить neo-7m к дефолту и поменять скорость на 115200. Подскажите плиз что я делаю не так?

#include <SoftwareSerial.h>

SoftwareSerial gps = SoftwareSerial(4,3);


byte resetGps[] = {0xB5,0x62,0x06,0x09,0x0D,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x03,0x1B,0x9A,
                          0xB5,0x62,0x05,0x01,0x02,0x00,0x06,0x09,0x17,0x40};
byte rate115200[] = {0xB5,0x62,0x06,0x00,0x14,0x00,0x01,0x00,0x00,0x00,0xD0,0x08,0x00,0x00,0x00,0xC2,0x01,0x00,0x07,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0xC0,0x7E,
                      0xB5,0x62,0x06,0x00,0x01,0x00,0x01,0x08,0x22};
byte rate57600[] = {0xB5,0x62,0x06,0x00,0x14,0x00,0x01,0x00,0x00,0x00,0xD0,0x08,0x00,0x00,0x00,0xE1,0x00,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0xE2,0xE1
                      0xB5,0x62,0x06,0x00,0x01,0x00,0x01,0x08,0x22};
  
void setup() {
  long rates[] = {115200, 57600, 38400, 19200, 9600};

  for (int i = 0; i < sizeof(rates)/sizeof(long); i++) {
    gps.begin(rates[i]);
    gps.write(resetGps,sizeof(resetGps));
    gps.end();
    delay(500);
  }
  
  gps.begin(9600);
  gps.write(rate115200,sizeof(rate115200));
  gps.end();
  gps.begin(115200);

  Serial.begin(115200);
}

void loop() {
  while(gps.available() > 0){
   Serial.write(gps.read());
    }
}

Но в консоле мы видим смещение: