Здравствуйте, собираю систему управления в машину. Состоит из центрального блока на меге и несколько блоков (нано) управления разбросанных по кузову. Все соединено по RS485. Когда сделал первый блок, сконектил к меге без проблем, затем сделал второй, подправил что-то в меге и все, данные теряются.
Менял только время между командами. Пробовал подстраивать сейчас, не получается. Затем подправил еще скетч, добавил проверку первого и последнего байта. В итоге снова какой то мусор.
Вот кусок кода slave:
Код:
if (RS.available()>=1){byte id=RS.read();
     if(id==30){digitalWrite(13,HIGH);//старт передачи
                delay(2);
                RS.write(IDcol),      
                RS.write(frost),    
                RS.write(abs(Tmp)),  
                RS.write(abs(tempd)),  
                RS.write(spray),    
                RS.write(Gal),      
                RS.write(int(MinT)),  
                RS.write(int(MaxT)),  
                RS.write(PWM1),      
                RS.write(PWM2),      
                RS.write(PWMS),      
                RS.write(AC),        
                RS.write(LS),        
                RS.write(HS),        
                RS.write(EST),        
                RS.write(IDcol);      
                delay(10);
                digitalWrite(13,LOW);}//стоп передачи
                }
А вот прием на мастере:
Код:
digitalWrite(13,HIGH);
delay(1);
Serial1.write(30);
delay(1);
digitalWrite(13,LOW);
delay(5);
if (Serial1.available()){   idcol = Serial1.peek();
                                if(idcol==30){
                                idcol = Serial1.read();
                                Frost = Serial1.read();
                                Tmp1 = Serial1.read();
                                Tmp2 = Serial1.read();
                                spray = Serial1.read();
                                Gal = Serial1.read();
                                MinT = Serial1.read();
                                MaxT = Serial1.read();
                                PWM1 = Serial1.read();
                                PWM2 = Serial1.read();
                                PWMS = Serial1.read();
                                AC = Serial1.read();
                                LS = Serial1.read();
                                HS = Serial1.read();
                                EST = Serial1.read();
                                IDcol = Serial1.read();
                                if(idcol==IDcol){ID30_OK=1;}else{ID30_OK=0;}
                               }}