Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

Nefreemen
2018-03-02 19:59:22

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

NoName
2018-02-26 07:48:32

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

ChaNger16ua
2018-02-25 22:42:18

Здравствуйте появилась проблема с передачей данных по серийному порту между двумя ардуино (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);
}

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

Підвал форуму