[Résolu]probleme Serial

bonjour,

j'ai un problème avec Sérial. j'envoie 300 octet mais seulement 150 sont affichés.
Connaissez-vous la solution
Merci

#include <SoftwareSerial.h>
//
SoftwareSerial BTSerial(2, 3); // RX | TX
// RX arduino <--- TX cible
// TX arduino ---> RX cible
byte rec;

void setup()

{
  Serial.begin(38400); // vitesse serial monitor

  BTSerial.begin(38400);  // vitesse software serial
}

void loop()
{


  if (BTSerial.available())
    rec = BTSerial.read();
  if (rec < 16) Serial.print("0");
  Serial.print(rec, HEX);

  if (Serial.available())
    BTSerial.write(Serial.read());
}

il manque des accolades sur le 1er test
test avec ça

#include <SoftwareSerial.h>
//
SoftwareSerial BTSerial(2, 3); // RX | TX
// RX arduino <--- TX cible
// TX arduino ---> RX cible
byte rec;

void setup()

{
  Serial.begin(38400); // vitesse serial monitor

  BTSerial.begin(38400);  // vitesse software serial
}

void loop()
{


  if (BTSerial.available()) {
    rec = BTSerial.read();
    if (rec < 16) Serial.print("0");
    Serial.print(rec, HEX);
  }

  if (Serial.available())
    BTSerial.write(Serial.read());
}

Cela ne répare pas le problème :confused:

Bonsoir,

Après de nombreux essais, j'ai constaté que c'est en remplissant un tableau de char à la réception (avec softwareSerial) que j'obtiens le moins de perte.
Puis après tu as tout le temps de traîter ce tableau: renvoi, concatener en chaîne, parser...etc

Il faut aussi augmenter la limite du buffer dans la librairie "softwareSerial.h" (128 par exemple)

#define _SS_MAX_RX_BUFF 128 //RX buffer defaut 64

mais surtout, en effet comme le montre "pepe" , d'abord passer à 9600 bds

Avec ces paramètres, 300 caractères c'est possible.