/ / Serial.print () skráti údaje pri čítaní pomocou QSerialPort - qt, arduino, sériový port

Serial.print () skracuje dáta pri čítaní pomocou QSerialPort - qt, arduino, sériový port

Snažím sa napísať jednoduchú celočíselnú hodnotu z aplikácie Arduino Mega 2560 do aplikácie Qt. Baudrate je nastavené na Serial.read() funguje dobre, keď odosielam údaje cez otvorený port s serial->write(some_data); z aplikácie Qt.

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

Vyššie uvedený kód funguje dobre. Predtým som čítal ďalšie a musel som ich pridať delay(3) aby to fungovalo. Teraz chcem poslať odpoveď späť

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

Vždy však existujú skrátené číslice. Z logického analyzátora viem, že odpoveď je napr. 8193 tak s QByteArray b = serial->readAll(); Mám výsledky ako 8, 81, 819, a niekedy 8193, I.e .: vždy sú posledné číslice skrátené náhodne. Domnievam sa, že je to tiež problém s načasovaním, ale nenašiel som pre to riešenie.

odpovede:

0 pre odpoveď č. 1

Len v prípade, že niekto čelí rovnakému problému: Zmena Baudrate z 9600 na 112500 to vyriešila.