Envoyer donnée en plusieurs paquets

Bonjour,

J’essaye d’envoyer “char replybuffer[255]” sur le bus i2c vers le maître. le problème c’est que le buffer i2c est limité à 32octets.
Je ne veux pas l’augmenter ducoup je dois découper le “replybuffer” s’il fait plus de 32 octets (il peut en faire moins) et l’envoyer par paquets de 32octets, l’un après l’autre tant que la taille n’est pas descendue en dessous de 32 octets…

J’ai fais plusieurs essai mais rien de concluant jusque là…

Le code ressemble à sa: (sa marche tant que la taille reste en dessous de 33octets…)

Maître:

case 253:
      Wire.requestFrom(Slave1, smslen);
      for (int i=0; i <= smslen; i++){
        SMSbuffer[i]=Wire.read();
        display.print(SMSbuffer[i]);
      }
      display.display();
      done=6;
      break;

Esclave:

case 254:
      Serial.print(replybuffer);
        Wire.write(replybuffer);
      iflag=LOW;
      done=6;
      break;

Toutes propositions bienvenue (:

Bonjour,

Une piste:

Normalement, la séquence pour une écriture sur le bus I2C est:
Wire.beginTransmission(adr);
Wire.write(const uint8_t *, size_t); ou Wire.write(uint8_t); //ici on rempli le buffer.
Wire.endTransmission(adr); //et c'est là seulement que l'on transmet le contenu du buffer sur le bus.

Tu dois donc découper en tenant compte de la remarque ci-dessus.

Roger.