#java #serial-port #arduino #midi
#java #последовательный порт #arduino #midi
Вопрос:
Я создаю интерфейс 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);
}
Я попытался прочитать последовательные данные в буфере символов:
Java
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.
Комментарии:
1. Можете ли вы пометить этот ответ как принятый, чтобы он не отображался в списке вопросов без ответов? Спасибо.
2. NP, спасибо, что сделали Stack Overflow лучшим местом!