Ви не увійшли.
Здравствуйте появилась проблема с передачей данных по серийному порту между двумя ардуино (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);
}
В конце я поставил разные задержки чтобы с имитировать разные циклы программ
Неактивний