java 如何向串口发送指令

现在我有个温度采集设备,通过RS232串口来连接,采集温度数据需要发送十六进制采集命令“EB9001552F”eclipse里怎么来实现啊?Javax.comm串口编程不... 现在我有个温度采集设备,通过RS232串口来连接,采集温度数据需要发送十六进制采集命令“EB 90 01 55 2F”eclipse里怎么来实现啊?
Javax.comm串口编程不能实现吗?
具体点可以吗?直接向串口写数据吗?
//SerialBean是本类库与其他应用程序的接口。该类库中定义了SerialBean的构造方法以及初始化串口,从串口读取数据,往串口写入数据以及关闭串口的函数。
//public int Initialize()本函数初始化所指定的串口并返回初始化结果。如果初始化成功返回1,否则返回-1。初始化的结果是该串口被SerialBean独占性使用,其参数被设置为9600, N, 8, 1。如果串口被成功初始化,则打开一个进程读取从串口传入的数据并将其保存在缓冲区中。
public void WritePort(String Msg)
本函数向串口发送一个字符串。

SerialBean SB = new SerialBean(4); //构造一个指向特定串口的SerialBean,这里是COM4
SB.Initialize();
SB.WritePort("EB 90 01 55 2F");
抛出异常了Exception in thread "main" java.lang.NullPointerException
at serial.SerialBean.WritePort(SerialBean.java:114)
at api.SerialExample.main(SerialExample.java:24)
展开
 我来答
匿名用户
推荐于2018-10-08
展开全部
需要一个包 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,所以报错了
day忘不掉的痛
推荐于2016-02-01 · 知道合伙人数码行家
day忘不掉的痛
知道合伙人数码行家
采纳数:62646 获赞数:223932
本人担任公司网络部总经理多年,有充足的网络经验、互联网相关知识和资讯。

向TA提问 私信TA
展开全部
举个例子:
byte[] bt = new byte{……}; ???如何定义
outputStream = serialPort.getOutputStream();
outputStream.write(bt);
代码如下:
byte[] bt = new byte{02,04,00,00,00,02,71,F8};
这样试试看看,就当成是整数数组定义 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leelizk
2010-12-10 · TA获得超过573个赞
知道小有建树答主
回答量:776
采纳率:0%
帮助的人:470万
展开全部
这个好像要用嵌入式java才可以的吧。
eclipse只开发 j2se或j2ee或j2me..
j2me应该可以吧。还有种java card..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式