机器学习和生物信息学实验室联盟

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4106|回复: 6
打印 上一主题 下一主题

关于Java串口通信

  [复制链接]
跳转到指定楼层
楼主
发表于 2012-3-19 22:45:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hsc 于 2012-3-20 12:05 编辑

之前在搞关于Java串口通信的东西,虽然最后因为硬件的原因没有试验成功,但在这里分享一下经验,简单记录一下。
普及一下串口通信:

串口通信(Serial Communication), 是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。
通俗的说,就是利用电脑上的串口来实现打电话或者发短信等等。

首先要下载一个javacomm20-win32.zip,这个是针对windows下的一个插件。解压之后会有好多文件,以及他的一些samples,选择其中的三个,javax.comm.properties,win32com.dll,comm.jar。
然后:
1.把javax.comm.properties文件拷贝到Java运行时环境的lib目录中,即:
               %JAVA_HOME%\lib\javax.comm.properties
                %JAVA_HOME%\jre\lib\javax.comm.properties
2.把win32com.dll拷贝到C:\windows\system32\ 和 %JAVA_HOME%\jre\bin\下
3.把comm.jar放到Java运行时环境的lib目录中,即%JAVA_HOME%\lib\comm.jar
4.在"环境变量"的CLASSPATH中添加comm.jar,如:%JAVA_HOME%\lib\comm.jar;

至于第二步的拷贝到system32下边,这个可以根据实际情况来看,我电脑上没有拷贝,一样能够成功,同样第四步也一样,如果运行不通过,那就是找不到,就要添加classpath了,如果能通过,就不需要麻烦了。

以上配置工作弄好之后,就可以写程序了,在Eclipse里导入comm.jar,剩下的就是程序问题了,下边列出一个简单的小程序。

列出电脑上所有可用串口小程序:

  1. Enumeration en = CommPortIdentifier.getPortIdentifiers();   
  2.             
  3. CommPortIdentifier portId;  
  4.             
  5. while (en.hasMoreElements())
  6. {   
  7.             
  8.           portId = (CommPortIdentifier) en.nextElement();  
  9.             
  10.           if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)
  11.          {
  12.             
  13.                   System.out.println(portId.getName());
  14.           }
  15. }
复制代码
以上代码可以列出电脑上所有的可用串口,前提是电脑上是有串口的,如果没有的话,会出现异常,配置就会出错,但是有的时候上边这些也会异常,之前也是弄了好久没有解决掉,后来试验了很多次才发现是因为需要驱动程序,但有的电脑需要,有的不需要,视情况而定。

  1. CommDriver cd=(CommDriver)Class.forName( "com.sun.comm.Win32Driver" ).newInstance();
  2. cd.initialize();
复制代码
这是驱动程序,但必须针对的是windows系统,然后加这个程序在串口程序前边,就可以正常运行了。
如果能正常列出串口,那么编写串口程序就指日可待了。

这只是一个初步了解的贴,如果想详细了解的话,可以去网上详细查看一下,也可以找我来讨论,我写了一个串口之间发送数据的程序,利用串口监听工具能够监听到数据了,但是还没有两个机器测试。由于代码比较长,这里就不往上面粘贴了,如果谁有兴趣,可以来我这拷贝一下。

这个是简单了解一下,如果有时间了我会写一个比较详细的文档,与大家分享一下,如果谁有比较好的建议,也可以提出来。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享
回复

使用道具 举报

沙发
发表于 2012-3-20 08:53:14 | 只看该作者
很好,我已拿到串口转usb的线,回头我们到401试一下
回复 支持 反对

使用道具 举报

板凳
发表于 2012-3-20 09:07:26 | 只看该作者
很棒!!!以后发技术帖都应该像@hsc先讲概念,再讲方法。

另外,能否提供javacomm20-win32.zip的附件呢。
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2012-3-20 12:05:58 | 只看该作者
xmubingo 发表于 2012-3-20 09:07
很棒!!!以后发技术帖都应该像@hsc先讲概念,再讲方法。

另外,能否提供javacomm20-win32.zip的附件呢 ...

已经上传上去了~
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2012-3-20 12:06:31 | 只看该作者
zouquan 发表于 2012-3-20 08:53
很好,我已拿到串口转usb的线,回头我们到401试一下

我回头再把usb转串口程序搞一下~
回复 支持 反对

使用道具 举报

6#
发表于 2012-3-20 12:14:10 | 只看该作者
hsc 发表于 2012-3-20 12:06
我回头再把usb转串口程序搞一下~

应该不需要,usb接猫,串口接主机,主机监听串口应该就可以
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2012-3-20 16:21:31 | 只看该作者
zouquan 发表于 2012-3-20 12:14
应该不需要,usb接猫,串口接主机,主机监听串口应该就可以

嗯,回头实验看行不行,不过这个程序功能简单,如果行的话,再写详细的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

机器学习和生物信息学实验室联盟  

GMT+8, 2024-11-27 05:59 , Processed in 0.071180 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表