/ / Serial.print () tronque les données lors de la lecture avec QSerialPort - qt, arduino, port série

Serial.print () tronque les données lors de la lecture avec QSerialPort - qt, arduino, port série

J'essaie d'écrire une valeur entière simple d'un Arduino Mega 2560 à une application Qt. Baudrate est réglé sur 9600 et Serial.read() fonctionne bien lorsque j’envoie des données via un port ouvert avec serial->write(some_data); à partir de Qt Application.

digitalWrite(SS, LOW);
if (Serial.available() == 2) {
response1 = SPI.transfer(Serial.read());
response2 = SPI.transfer(Serial.read());
}
digitalWrite(SS, HIGH);

Le code ci-dessus fonctionne bien. J'ai lu un autre avant et devais ajouter delay(3) pour que cela fonctionne. Maintenant je veux renvoyer la réponse

Serial.print((response2 << 8 ) | (response1 & 0xFF));

Mais il y a toujours des chiffres tronqués. Je sais d'après l'analyseur logique que la réponse est, par exemple, 8193 donc avec QByteArray b = serial->readAll(); J'obtiens des résultats comme 8, 81, 819, et parfois 8193. C'est-à-dire que les derniers chiffres sont toujours tronqués aléatoirement. Je suppose que c'est aussi un problème de timing, mais je ne pouvais pas trouver de solution à ce problème.

Réponses:

0 pour la réponse № 1

Juste au cas où toute personne confrontée au même problème: changer le débit en bauds de 9600 à 112500 corrigeait ce problème.