成都创新互联网站制作重庆分公司

java串口发送指令代码 java调用串口

求VBS JAVA 等简单易懂的操作串口(com口)的代码,

Comm.Output=字符串或byte

成都创新互联公司是一家集网站建设,和布克赛尔蒙古企业网站建设,和布克赛尔蒙古品牌网站建设,网站定制,和布克赛尔蒙古网站建设报价,网络营销,网络优化,和布克赛尔蒙古网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

如果是可见字符,则可以直接输出字符串,如Comm.Output="hello"

不然得用byte(数组),如

Comm.CommPort = 3 '...使用Com3口

Comm.Settings = "57600,n,8,1" '对串口通讯的相关参数。包括串口通讯的比特率,奇偶校验,数据位长度、停止位等。其默认值 是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校验,8位数据位,1个停止位。

Comm.OutBufferSize = 1024

If Comm.PortOpen = False Then

Comm.PortOpen = True '...打开串口

End If

Comm.OutBufferCount = 0 '...清空输出寄存器

Dim buffer(6) as Byte

buffer(0) = 255

buffer(1) = 1

buffer(2) = 0

buffer(3) = 0

buffer(4) = 0

buffer(5) = 0

buffer(6) = 1

Comm.Output = buffer

Comm.PortOpen = False

上面确实是VB的代码。

在VBS中,没有类型,所以声明数组与初始化可能为:

Dim buffer(6)

buffer(0) = CByte(255)

...

我没试过,不一定正确哟。

java 如何向串口发送指令

需要一个包 comm.jar

需要一个配置文件 javax.comm.properties (工程根目录)

(或者放在JDK里)

// 取得端口句柄

CommPortIdentifier id = CommPortIdentifier.getPortIdentifier(portName);

port = (SerialPort) id .open("SerialDemo", 30000);

port .setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);

port .notifyOnDataAvailable(true);

port .notifyOnBreakInterrupt(true);

port .enableReceiveTimeout(delayTime);

读取之类的自己写就行了,(port .getInputStream()),完事之后别忘了关掉端口,不然下次就不能用了,只能重启系统

配置文件里就一行:

Driver=com.sun.comm.Win32Driver

----------------------------------

你设个断点单步调试看一下原因,那个SerialBean是你自己写的,谁也不知道里面整啥了,单步调试就知道哪里错误。

抛出异常了Exception in thread "main" java.lang.NullPointerException

at serial.SerialBean.WritePort(SerialBean.java:114)

从这里看,是在SerialBean.java的114行(函数WritePort)的一个东西,它的值是null,所以报错了

java实现串口通信代码

public static void process() {

try {

Enumeration portList = CommPortIdentifier.getPortIdentifiers();

while (portList.hasMoreElements())

{

CommPortIdentifier portId = (CommPortIdentifier) portList.nextElement();

if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)//如果端口类型是串口则判断名称

{

if(portId.getName().equals("COM1")){//如果是COM1端口则退出循环

break;

}else{

portId=null;

}

}

}

SerialPort serialPort = (SerialPort)portId.open("Serial_Communication", 1000);//打开串口的超时时间为1000ms

serialPort.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);//设置串口速率为9600,数据位8位,停止位1们,奇偶校验无

InputStream in = serialPort.getInputStream();//得到输入流

OutputStream out = serialPort.getOutputStream();//得到输出流

//进行输入输出操作

//操作结束后

in.close();

out.close();

serialPort.close();//关闭串口

} catch (PortInUseException e) {

e.printStackTrace();

} catch (UnsupportedCommOperationException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

java如何向串口发送指令?

需要一个包 comm.jar

需要一个配置文件 javax.comm.properties (工程根目录)

(或者放在JDK里)

// 取得端口句柄

CommPortIdentifier id = CommPortIdentifier.getPortIdentifier(portName);

port = (SerialPort) id .open("SerialDemo", 30000);

port .setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);

port .notifyOnDataAvailable(true);

port .notifyOnBreakInterrupt(true);

port .enableReceiveTimeout(delayTime);

读取之类的自己写就行了,(port .getInputStream()),完事之后别忘了关掉端口,不然下次就不能用了,只能重启系统

配置文件里就一行:

Driver=com.sun.comm.Win32Driver

----------------------------------

你设个断点单步调试看一下原因,那个SerialBean是你自己写的,谁也不知道里面整啥了,单步调试就知道哪里错误。

抛出异常了Exception in thread "main" java.lang.NullPointerException

at serial.SerialBean.WritePort(SerialBean.java:114)

从这里看,是在SerialBean.java的114行(函数WritePort)的一个东西,它的值是null,所以报错了


本文题目:java串口发送指令代码 java调用串口
当前URL:http://cxhlcq.com/article/hpcjse.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部