Серийное чтение Java Arduino

Я делаю интерфейс Serial to MIDI в Java с последовательными данными, поступающими из Arduino и обрабатываемыми через библиотеку RXTX. К сожалению, используя предложенный код из ссылки на сайт Arduino, я не могу получить серийные данные. Пример кода использует Serial.println на стороне Arduino и BufferedReader.readLine() на стороне Java. В моем коде я пишу не строку через Serial.println, а 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);
}

Я попытался прочитать серийные данные в буфере символов:

Джава

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

но я получаю странные данные...

1 ответ

Решение

Решено: это была просто ошибка в port.setSerialPortParamsЯ писал на скорости 115200, но читал на 9600.

Другие вопросы по тегам