我正在读一个串口,其中有一些像skljdf85789 ^& ^ eeb等字符。 在超级终端中,我可以看到具有普通字符的端口。 现在,当我通过使用java,eclipse阅读它时, 在控制台中我应该看到smt像skljdf85789 ^& ^ eeb等。相反,我看到一系列频繁的矩形。 我认为这是一个不兼容类型的问题。我试过这些:
public void serialEvent(SerialPortEvent arg0) {
int data;
switch (arg0.getEventType()) {
case SerialPortEvent.DATA_AVAILABLE:
try {
int len = 0;
int bet=0;
while ((data = in.read()) > -1) {
if (data == ' '||data == ' ' ){
break;
}
buffer[len++] = (byte) data;
}// it writes to a buffer from the port
String meterbuf = new String(buffer, 0, len);//buffer is a byte array, it casted to String here.
System.out.println("string from m485: " + meterbuf);
for(int k=0;k<meterbuf.length();k++)
{
char c=meterbuf.charAt(k);
System.out.print(Character.valueOf(c)+" ");
}// I tried to get chars one by one, it did not work, too.
你有什么建议吗? 提前谢谢。
答案 0 :(得分:0)
问题是波音。我原谅设置波特率。 我使用c,“iar嵌入式系统”写入端口,我正在使用Java,“eclipse”从端口读取。在这两个程序中,波特率应该相等。如果它们不同,那些角色就会很傻:)