android java 串口通信,关于Java串口通信

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

普及一下串口通信:

串口通信(Serial Communication), 是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。

通俗的说,就是利用电脑上的串口来实现打电话或者发短信等等。

首先要下载一个javacomm20-win32.zip 。解压之后会有好多文件,以及他的一些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,剩下的就是程序问题了,下边列出一个简单的小程序。

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

Enumeration en = CommPortIdentifier.getPortIdentifiers();

CommPortIdentifier portId;

while (en.hasMoreElements())

{

portId = (CommPortIdentifier) en.nextElement();

if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)

{

System.out.println(portId.getName());

}

}

以上代码可以列出电脑上所有的可用串口,前提是电脑上是有串口的,如果没有的话,会出现异常,配置就会出错,但是有的时候上边这些也会异常,之前也是弄了好久没有解决掉,后来试验了很多次才发现是因为需要驱动程序,但有的电脑需要,有的不需要,视情况而定。

CommDriver cd=(CommDriver)Class.forName( "com.sun.comm.Win32Driver" ).newInstance();

cd.initialize();

这是驱动程序,但必须针对的是windows系统,然后加这个程序在串口程序前边,就可以正常运行了。

如果能正常列出串口,那么编写串口程序就指日可待了。

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值