java的web程序怎么实现串口通讯 java串口通讯发送和接收数据如何控制硬件
java的web程序怎么使用串口通讯 java串口通讯过程中需要注意哪些地方
要在Java Web程序中实现串口通讯,第一步非常关键,需要配置好环境。比如你得用到sun提供的串口通信驱动,比如 javacomm20-win32.zip,关键文件如下:comm.jar放到 JAVA_HOME/jre/lib/ext 里,win32com.dll 放到 JAVA_HOME/bin,还有 javax.comm.properties 文件两个地方都得放,一般放在 jre/lib 的目录下,确保Java能正确调用串口接口。
如果你使用IE浏览器操作,还得到右上角齿轮图标点开“Internet选项”,切换到“安全”标签下点击“自定义级别”,把“Java小程序脚本”和“活动脚本”都设置为禁用,不然Java脚本运行时会遇到权限问题,简直让人头大!

java串口通讯发送数据成功但接收不到数据怎么办 java如何使用rxtx库正确控制硬件串口通信
在串口发送和接收数据时,大家最常碰到的问题就是:我明明用 OutputStream 发送数据没问题,为什么用 InputStream 就读不到呢?
这里给你几点超级实用的tips:
-
确认发送的数据格式准确无误,例如你要发的是16进制数据,不要直接把字符串当数据发。很多人会写成
String str="01230545"; out.write(str.getBytes());但其实这只是发了字符串的ASCII码,根本不是你想要的二进制数据。正确做法是要把字符串先转成byte数组,比如用byte[] bytes = hexStringToByteArray(str);这样才能保证硬件能识别。 -
收到数据要看硬件设备是否会返回信息,有些命令根本不回任何数据,浪费时间用
InputStream读当然是空的。所以先了解设备返回协议是关键。 -
用rxtx库时要注意: 发送用的
outputStream.write()方法确实是写字节流的,所以你得把你想发送的十六进制转换成byte[]再写出,不能直接写字符串。要不然发送出去的就是完全错乱的信息,硬件肯定没法懂。 -
Java控制硬件也不仅限串口,可以通过网络Socket通信或者其他接口,而且Java提供了Java Comm API,让你方便操作串口设备,发送控制指令,接收设备反馈,硬件就像听你的话一样。

相关问题解答
- java的web程序串口通讯要准备哪些环境配置?
哎呀,这个其实挺简单啦,首先你得有Java官网的串口通讯库,比如 javacomm 或者更好用的 rxtx。然后记得把关键文件放好位置,比如 comm.jar 放到你的JRE扩展库里,dll也要放对位置,别忘了配置浏览器安全设置,尤其是IE,禁用Java脚本会让你一脸问号。就是这样,环境到位才能玩转串口。
- 为什么我发送数据成功了但接收不到返回?
这个问题100%是格式或者设备协议没弄好!你得先确认设备会回啥,不然你指望它回音,得不到也正常捏。还有啊,千万别直接用字符串发数据,得把你想发的十六进制字符串转换成byte数组后发,不然一切都是瞎扯。设备没收到命令或者命令发错,回你空也是常态。
- 如何使用rxtx库发送16进制数据?
嘿,这个挺关键!rxtx其实是围绕字节流设计的,outputStream.write()是直接写byte的。你想发啥,就得写byte数组啊!如果你有个十六进制字符串,先用工具函数把它转成byte[],再write出去。要不人家硬件怎么能听懂呢?千万别傻傻当成字符串发噢。
- java怎么用来控制硬件设备?
呵呵,这个话题够烧脑但很有趣。你可以用Java Comm API直接操作串口,发送命令控制设备。还有网络通信也常用,比如用Socket和硬件对话,实时收发数据简直方便。总体来说,就是把Java程序当作“遥控器”,靠串口或者网络接口把命令送过去,设备自然听你安排啦!
添加评论