Java 通过串口读取数据

茶凉了就别再续了 2014-04-09 08:56:41
List<BeiTaiBelter> getBelter(CommPortIdentifier portId, byte[] byteData,
int Lenth) throws PortInUseException,
UnsupportedCommOperationException, TooManyListenersException,
IOException, InterruptedException {
SerialPort serialPort=null;
try {

/**
* java读取串口 程序调试可以读取到数据,
* 正常运行读取不到数据(程序走到这一步(serialPort = (SerialPort) portId.open(portId.getName(), 3000);)
* 不在往下执行 死在这个地方) 求高手为我解决这个问题
*/


serialPort = (SerialPort) portId.open(portId.getName(), 3000);
} catch (PortInUseException e) {
System.out.println("duankou bei dddd");
e.printStackTrace();
}

serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN);
// 波特率// 数据位数 // 停止位 // 奇偶位
serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8,
SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);

InputStream inputStream = serialPort.getInputStream();
OutputStream outputStream = serialPort.getOutputStream();
outputStream.write(byteData);
Thread.sleep(1000);
List<BeiTaiBelter> list = new ArrayList<BeiTaiBelter>();
while (inputStream.available() > 0) {
byte[] data = new byte[inputStream.available()];
inputStream.read(data);
list = beiTaiHardwareUtil.getBeiTaiBelterList(data, list);
}
inputStream.close();
outputStream.close();
serialPort.close();
return list;
}
...全文
106 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧