/ / Serial.print () trunca dados ao ler com QSerialPort - qt, arduino, porta serial

Serial.print () trunca dados ao ler com o QSerialPort - qt, arduino, porta serial

Estou tentando escrever um valor inteiro simples de um Arduino Mega 2560 para um aplicativo Qt. Baudrate está definido como 9600 e Serial.read() funciona bem quando envio dados através de uma porta aberta com serial->write(some_data); do aplicativo Qt.

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

O código acima funciona bem. Eu li outro antes e tive que adicionar delay(3) para fazer isso funcionar. Agora eu quero enviar de volta a resposta

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

Mas sempre há dígitos truncados. Sei pelo analisador lógico que a resposta é p. 8193 então com QByteArray b = serial->readAll(); Eu recebo resultados como 8, 81, 819, e às vezes 8193. Ou seja: sempre os últimos dígitos são truncados aleatoriamente. Presumo que esse também seja um problema de tempo, mas não foi possível encontrar uma correção para isso.

Respostas:

0 para resposta № 1

Caso alguém esteja enfrentando o mesmo problema: Alterar o Baudrate de 9600 para 112500 corrigiu isso.