Estoy creando una interfaz serial a MIDI en Java, con los datos en serie provenientes de un Arduino y siendo procesados ​​a través de la biblioteca RXTX. Desafortunadamente, al usar el código sugerido del enlace del sitio web de Arduino , no puedo recuperar los datos en serie. El código de ejemplo se usa Serial.printlnen el lado de Arduino y BufferedReader.readLine()en el lado de Java. En mi código, no estoy escribiendo una línea a través de Serial.println, sino un mensaje MIDI.

Arduino :

void MIDI_TX(unsigned char MESSAGE, unsigned char PITCH, unsigned char VELOCITY) 
{
  status = MESSAGE + midichannel;
  Serial.write(status);
  Serial.write(PITCH);
  Serial.write(VELOCITY);
}

Intenté leer los datos en serie en un búfer de caracteres:

Java

char buf[] = new char[3];
reader.read(buf);
int channel = (int)buf[0] ;
int key = (int)buf[1] ;
int vel = (int)buf[2] ;

pero obtengo datos raros ...

ตอบ

SOLUCIONADO: Fue solo un error en el port.setSerialPortParams, estaba escribiendo a una velocidad en baudios 115200 pero leyendo a 9600.