2014-07-06 88 views
0

我正在用Java编写串口到MIDI接口,串口数据来自Arduino并通过RXTX库进行处理。 不幸的是,使用来自Arduino网站link的建议代码,我无法检索串行数据。 示例代码在Arduino端使用Serial.println,在Java端使用BufferedReader.readLine()。在我的代码中,我没有通过Serial.println写一行,而是写了一条MIDI消息。Java Arduino串行读取

的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] ; 

,但我越来越怪异的数据...

回答

2

解决: 这只是一个错误在port.setSerialPortParams,我在波特率115200写作,但在9600

+0

你可以标记为已接受这个答案阅读,因此它不会对悬而未决的问题清单上显示?谢谢。 – dsolimano

+0

对不起,我忘了。 – ascallonisi

+1

NP,感谢让堆栈溢出一个更好的地方! – dsolimano