Softserial помогите

Тема в разделе "Arduino & Shields", создана пользователем Evgeny1977, 29 мар 2022.

  1. Evgeny1977

    Evgeny1977 Нуб

    передаю с esp32
    Код (C++):
    String yourInputend = readFile(SPIFFS, "/inputend.txt");

    float val_ffff =yourInputend.toFloat();
      if (yourInputend!=yourInputend1){
      enmySerial.println(val_ffff);
      yourInputend1=yourInputend;

      }

    delay(200);

    и затем в меге2560
    читаю

    void loop() {

    if (mySerial.available()) {  

        val_f=  String(mySerial.parseFloat());

    if (val_f!="0.00")
    {
      zero();
        aa1(String(val_f).substring(0,1),1);
      aa1(String(val_f).substring(1,2),2);
      aa1(String(val_f).substring(3,4),3);
        aa1(String(val_f).substring(4,5),4 );

        Serial.println(String(val_f));

    }
    }

    }

    Все вроде отлично но бывает за места 75.75 может выдать 75.00 либо две строки 75 и 00

    пробовал строку передать типа " 75.75 " тоже самое

    вообще нужно просто передать цифры типа 99.99
     
    Последнее редактирование: 29 мар 2022
  2. parovoZZ

    parovoZZ Гуру

    и в чём проблема? Умножь на 100 и передавай целым числом. На приёмнике поделишь.
    Если так хочется с запятой, ну так и передавай байтами. На приёмной стороне собери в 4 байта и приведи к float.
     
  3. Airbus

    Airbus Радиохулиган Модератор

    [​IMG]
     
  4. Evgeny1977

    Evgeny1977 Нуб

    все оказалось банально просто был общий минус и припаян только tx а rx нет это так комуто на заметку
     
  5. b707

    b707 Гуру

    ну проблема-то у вас не в этом, а в том что передаете данные по Сериал надеясь на авось
    Сделайте хотя бы признак начала пакета и признак конца. а лучше контрольную сумму