J'ai fait quelques essais.
Sur la carte Rx :
long val = 0x74CBB1;
Serial.print(0xff, BYTE); // la valeur envoyée est 0xFF
Serial.print((val >> 24) & 0xFF, BYTE); // la valeur envoyée est 0x0
Serial.print((val >> 16) & 0xFF, BYTE); // la valeur envoyée est 0x74
Serial.print((val >> 8) & 0xFF, BYTE); // la valeur envoyée est 0xCB
Serial.print(val & 0xFF, BYTE); // la valeur envoyée est 0xB1
Si je remplace BYTE par HEX, sur le moniteur série j'ai FF074CBB1, donc jusque là ça va.
Sur la carte Tx, je pensais qu'avec ce code j'arriverais à récupérer mes valeurs :
while (Serial.available() >= 5) { // 5 = 1 octet pour FF + 4 octets
if (Serial.read() == 0xff) { // le premier octet, équivalent à ton T
val = ((Serial.read() << 24) |(Serial.read() << 16))|((Serial.read() << 8) |(Serial.read()));
Serial.println(val,DEC);
mais cela ne fonctionne pas, la valeur retournée est -19969.
Pour voir ce que j'avais dans le flux, j'ai essayé de faire :
Serial.println(serial.read(),HEX)
Les 100 premières lignes j'ai :
FF
74
CB
B1
FF
74
CB
B1
FF
74
CB
Et ensuite je n'ai plus qu'une valeur qui est retournée :
CB
CB
CB
CB
CB
CB
CB
CB
CB
CB
CB
CB