JAVA 串口驱动_初始化串口驱动

private   boolean   initCommDriver_win32()   {

try   {

System.loadLibrary( "win32com ");

String   driverName   =   "com.sun.comm.Win32Driver ";

CommDriver   driver   =   (CommDriver)   Class.forName(driverName).newInstance();

driver.initialize();

return   true;

}catch   (Throwable   e)   {

MessageDialog.openInformation(null,   "initDriver ",   "initDriver_Err_Win32Com ");

e.printStackTrace();

return   false;

}

}

//打开串口

private   boolean   OpenComm(String   PortName)

{

//获取指定的COM端口

try   {

portIdentifier   =   CommPortIdentifier.getPortIdentifier(PortName);

}   catch   (NoSuchPortException   e)   {

e.printStackTrace();

return   false;

}

//打开端口(3秒打不开则失败)

try   {

serialPort   =   (SerialPort)portIdentifier.open(this.getTitle(),3000);

}   catch   (PortInUseException   e)   {

MessageDialog.openInformation(null,   "OpenComm ", "Open_Err ");

e.printStackTrace();

return   false;

}

//设置端口通讯参数   (波特率   =   9600,数据位   =   8,停止位   =   1   ,校验位   =奇校验)

try   {

serialPort.setSerialPortParams(9600,

SerialPort.DATABITS_8,

SerialPort.STOPBITS_1,

SerialPort.PARITY_ODD);

}   catch   (UnsupportedCommOperationException   e)

{

MessageDialog.openInformation(null,   "OpenComm ", "Set_Port ");

e.printStackTrace();

return   false;

}

//设置输入流

try   {

inputStream   =   serialPort.getInputStream();

}   catch   (IOException   e)   {

MessageDialog.openInformation(null,   "OpenComm ", "Set_InputStream ");

e.printStackTrace();

return   false;

}

//设置输出流

try   {

outputStream   =   serialPort.getOutputStream();

}   catch   (IOException   e)   {

MessageDialog.openInformation(null,   "OpenComm ", "Set_OutputStream ");

e.printStackTrace();

return   false;

}

//当串口有数据时通知

serialPort.notifyOnDataAvailable(true);

//当串口通讯中断时通知

serialPort.notifyOnBreakInterrupt(true);

//接收数据超时设置

try   {

serialPort.enableReceiveTimeout(30);

}   catch   (UnsupportedCommOperationException   e)   {

e.printStackTrace();

return   false;

}

//设置一个串口数据暂存区

strBuffer=new   StringBuffer();

//给当前串口添加一个监听器   DisposeSerialportMessage

try   {

serialPort.addEventListener(

new   SerialPortEventListener()

{

public   void   serialEvent(SerialPortEvent   e)

{

disposeSerialportMessage(e);

}

}

);

}   catch   (TooManyListenersException   e)   {

e.printStackTrace();

return   false;

}

return   true;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值