Нет чистой последовательной связи между M600Pro и Arduino - PullRequest
0 голосов
/ 31 марта 2020

У меня есть DJI M600 Pro, подключенный к программному последовательному порту на Arduino Uno, и я не получаю чистый сигнал.

Скорость передачи в DJ Assistant была установлена ​​на 115200, и то же самое касается последовательного монитора Arduino. В DJI Assistant включили API и отключили все выходы, кроме данных GPS, и установите его на 1 Гц, чтобы его было легче читать для тестирования.

Я вижу данные, летящие с частотой 1 Гц, но последовательный вывод - это в основном вопросительные знаки и некоторые буквы между ними.

Зашифрованы ли последовательные данные? Если так, как я могу расшифровать это?

Вот код:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); // RX, TX

void setup()
{
  // Open serial communications and wait for port to open:
  Serial.begin(234000);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Native USB only
  }


  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(234000);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

1 Ответ

1 голос
/ 01 апреля 2020

Вы говорите, что скорость передачи данных составляет 115200, но код говорит, что это 234000. Программное обеспечение Arduino говорит, что оно может go до 115200. Используя детали UART из более старой таблицы данных процессора ATmega8, пытаясь получить скорость 234000 бодов действительно дает вам скорость 250000 бод - ошибка около 6,8%.

Может быть, попробовать что-то гораздо медленнее - просто посмотреть, может ли работать.

...