• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь gps neo-7m ubx reset + change baud

Oput

New member
Добрый. Хочу сбросить модуль до состояния "по умолчанию" и сменить скорость порта.

Код:
#include <SoftwareSerial.h>

SoftwareSerial gps = SoftwareSerial(D7, D8);

byte resetGps[] = {0xB5,0x62,0x06,0x09,0x0D,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x03,0x1B,0x9A};
byte rate57600[] = {0xB5,0x62,0x06,0x00,0x14,0x00,0x01,0x00,0x00,0x00,0xD0,0x08,0x00,0x00,0x00,0xE1,0x00,0x00,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0xD7,0x93};
              
void setup() {
  delay(1000);
  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(1000);
  }
 
  gps.begin(9600);
  gps.write(rate57600,sizeof(rate57600));
  delay(1000);
  gps.end();

  gps.begin(57600);
  Serial.begin(57600);
}

void loop() {
while(gps.available() > 0){
   Serial.write(gps.read());
  }
}
Проблема в том что это работает крайне не стабильно, скажем 50\50 - по логике или работает или нет.



Как можно это поправить?
 
Сверху Снизу