#1 2018-02-25 22:42:18

ChaNger16ua
Участник
Зарегистрирован: 2017-11-15
Сообщений: 7

Проблема передачи по серийному порту между двумя ардуино

Здравствуйте появилась проблема с передачей данных по серийному порту между двумя ардуино (Mega и Nano). Смысл в том, что одна ардуина отравляет пакета данных определенного количества байт, а другая будет считывать данные только тогда, когда будет то определенное количество байт. Но у меня появилась проблема что не всегда приходят данные ( то они приходят в нужном количестве, то не приходят вообще). Вот код первой принимающей ардуины:

void loop() {
  int FirstMass[4];
  byte x = 0;
  int y = 0;
   
  Serial3.print("1"); // отправка флага чтобы отправляющая ардуина начала отправлять данные
  delay(100); // я думал что данные просто не успевают все перекинуться, поэтому поставил задержку
  if( Serial3.available() == sizeof(FirstMass) ) { // если пришло нужные данные
    in = Serial3.available(); // записываю количество байт которые пришли
    for(int i = 0; i < sizeof(FirstMass); i++) { // это я считываю данные из буфера, чтобы его очистить
      y = Serial3.read();
    } 
  }

  Serial.println(x);// вывод количества байт которые пришли
  delay(1000);
}

Вот код отправляющей:

int FisrtMass[4] ={1,2,3,4,}; 

void loop() {
  if( Serial.available() > 0 ) {
    Serial.read();
    for( int i = 0; i < 4; i++ ) {
      Serial.write(FirstMass[i]);
    }
  }
  
  delay(2000);
}

В конце я поставил разные задержки чтобы с имитировать разные циклы программ

#2 2018-02-26 07:48:32

NoName
Customer
Из Київ
Зарегистрирован: 2014-07-08
Сообщений: 1,409

Re: Проблема передачи по серийному порту между двумя ардуино

http://forum.arduino.cc/index.php?topic=265021.0

#3 2018-03-02 19:59:22

Nefreemen
Участник
Из Киев
Зарегистрирован: 2015-12-19
Сообщений: 708

Re: Проблема передачи по серийному порту между двумя ардуино

А как насчет количества байт  lol ?

Быстрое сообщение

Введите сообщение и нажмите Отправить

Подвал раздела