Je souhaite savoir s'il est possible de déclarer une variable et de la lier à un port série. L'objectif est de pouvoir jouer entre les différents ports série sur une MEGA sans utiliser des conditions. Donc de remplacer un code comme celui-ci:
int nbSerial;
[...]
if (nbSerial == 1) {
Serial1.Print("test1");
} else if (nbSerial == 2) {
Serial2.Print("test2");
} else if (nbSerial == 3) {
Serial3.Print("test3");
}
Par exemple, au lieu d'avoir:
Serial.print("test");
Je souhaite pouvoir écrire quelque chose du genre:
Serial mySerial; // déclaration de mySerial ?
mySerail = Serial1;
mySerial.print("test");
Pour info, je ne suis pas intéressé par les éventuelles solutions impliquant la bibliothèque "SoftwareSerial" car elle me crée des problèmes dans mon code (interactions avec mes calculs de délais dans mes interruptions)
Merci d'avance,
Mikael
même si je ne suis pas fan des #define, ça peut simplifier la vie faites un
#define lePortSerieDuGPS Serial1
et ensuite utilisez
lePortSerieDuGPS.begin(38400);
...
r = lePortSerieDuGPS.read();
...
sinon, comme Serial, Serial1, Serial2,... sont juste des instances d'une classe, vous pouvez définir par exemple un pointeur sur le port Série. Il suffit d'avoir la bonne classe (HardwareSerial)