希望在这里找到解决办法。
我有一个控制器,它通过 UART 使用特定于应用程序的协议,并且该协议仅在 14400 bps 下工作。
我必须使用 java 代码通过串行端口与此控制器通信。
但是我发现我正在使用的 API 不支持 14400 波特率,尽管他们称之为标准!!。
我尝试使用 javax.comm 和 rxtx jar。没有真正的地狱,因为他们两个都不支持这个波特率。
任何人都可以在这方面帮助我,这将非常有帮助。
谢谢!
好的,这是代码片段
selectedPort = (SerialPort) portID.open("FlashProgramming",
TIMEOUT);
System.out.println("port " + selectedPort + " is opened");
try {
selectedPort.setSerialPortParams(14400,
SerialPort.DATABITS_8, SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
//这里尝试将波特率设置为14400,但它正在回滚到9600,不支持默认为14400!
}
// no handshaking or other flow control
try {
selectedPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
} catch (UnsupportedCommOperationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// timer on any read of the serial port
try {
selectedPort.enableReceiveTimeout(TIMEOUT);
} catch (UnsupportedCommOperationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println("Comport Configeration is done");
try {
Serialdriver.in = selectedPort.getInputStream();
Serialdriver.out = selectedPort.getOutputStream();
System.out.println("i/p & o/p's are initialized");
Serialdriver.handlerParamselScreen.displaystatus("Seleted Com port "
+ selectedPort + " is Successfully opened");
}
selectedPort.addEventListener(Serialdriver);
selectedPort.notifyOnDataAvailable(true);
return selectedPort;
}