Java串口编程.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java串口编程

前沿,要进行串口编程必须安装sun公司的comm包和相应的dll文件,若是用eclipse编程的话,把jar和dll文件复制到你所建的项目下,然后在eclipse中选择“项目"菜单,把项目下的.jar文件作为外部jars加入。 首先介绍两个类 CommPortIdentifier------串口和并口的硬件初始化类,同时包括选择是并口还是串口,这在它的常用构造方法里很好的体现了:CommPortIdentifier.getPortIdentifier(commName),commName形式为COM1字符串时表示为串口. SerialPort------------串口类的软件初始化类,包括输入输出流、设置参数等等。名字随看起来像是串口,但是它的意思实际上是序列话,包括串口和并口的基本设置.常用构造方法SerialPort serialPort = (SerialPort) portId.open("CommBean", 1000),第一个参数为应用程序名称,第二个为超时时间。 注意点: 一、这两个类创建的时候,第一个类CommPortIdentifier应该设置为static,不然的话,运行到第二次便会出错,原因是还在使用串口,不能创建新的串口程序了。 二、在SerialPort设置参数的时候,数据位一定要设置好,不然的话,会出现?,反过来如果出现了?在程序结果里就是你的数据位设置有误。 三、如果程序里出现了“口”方框一样的东西就是你在没有数据送来的时候读取数据,解决方法是,等待有数据时才读串口。 程序实例: package four; import gnu.io.*; import java.io.*; import java.util.*; public class COM implements Runnable, SerialPortEventListener { private static Thread readThread;// static,保证该线程唯一 private volatile boolean toRead = false;// volatile 保证不同线程得到的值一致 private static CommPortIdentifier portId;// 只设portId为static就可,下面的输入输出流由portId产生 private SerialPort serialPort; private String commName = "COM2"; private int bPS = 9600; private int dataBit = 7;//和C51通信必须设为7位,不然输出不对 private int stopBit = 1; private int pariteyBit = 0; private OutputStream out; private InputStream in; private String encoding = "gb2312"; public boolean initComm() { boolean ok = false; try {// 打开硬件资源,获取并口 portId = CommPortIdentifier.getPortIdentifier(commName); } catch (NoSuchPortException e) { System.out.println("Get portid err" + e.getMessage()); return ok; } try {// 打开软件资源,设置进程名称和超时时间 serialPort = (SerialPort) portId.open("CommBean", 1000); } catch (PortInUseException e) { System.out.println("Get serialport err " + e.getMessage()); return ok; } try {// 设置数据传输参数 serialPort.setSerialPortParams(bPS, dataBit, stopBit, pariteyBit); } catch (UnsupportedCommOperationException e) { System.out.println("Set port params err " + e.getMessage()); return ok; } try {// 创建输入流 in = serialPort.getInputStream(); } catch (IO

文档评论(0)

kakaxi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档