java 实现单片机与PC串口通讯
来源:互联网 发布:php购物网站源码mysql 编辑:程序博客网 时间:2024/05/01 09:58
Java 实现单片机与PC串口通讯
在用Eclipse做开发时,我发现利用Eclipse控制台可以很方便的实现PC与单片机的串口通讯,这样可以省略自己做一个GUI的步骤,直接利用Console做串口通讯终端。
实现代码如下:
package commPort;
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration;
import java.util.Scanner;
import java.util.TooManyListenersException;
import javax.comm.CommPortIdentifier; import javax.comm.PortInUseException; import javax.comm.SerialPort;
import javax.comm.SerialPortEvent;
import javax.comm.SerialPortEventListener;
import javax.comm.UnsupportedCommOperationException; /**
* <dl>
* <dt><b>类说明:</b></dt><dd> *
* </dd> * </dl>
* @copyright :Copyright 2012. All right reserved. *【Update History】
* Version Date Time Company Name
Department
* ------- ---------- ------------ --------- ---------- ----------- * 1.00 2012-12-27 上午8:13:18 Jason Wei
*/
public class Read_Write { /**
* @param args */
public static void main(String[] args) { CommUtils commUtil=new CommUtils("COM12");
String str1;
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);
String str2; java.util.Scanner in=new Scanner(System.in); while(true) {
str1=in.nextLine(); commUtil.write(str1);
commUtil.run(); // str2=commUtil.read(); // System.out.print(str2);
}
}
}
class CommUtils implements SerialPortEventListener, Runnable { CommPortIdentifier portId; Enumeration<?> portList; SerialPort serialPort; InputStream inputStream; OutputStream outputStream; String str_reader; String str_writer; Thread readThread; String[] commPortList;
public CommUtils(String commName) { portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { CommPortIdentifier temp; // portList.
temp = (CommPortIdentifier) portList.nextElement();
if (temp.getPortType() == CommPortIdentifier.PORT_SERIAL) { if (temp.getName().equals(commName)) { portId = temp; System.out.println("connecting to " + commName);
}
} }
try { serialPort = (SerialPort) portId.open(commName, 2000);
} catch (PortInUseException e) {
var cpro_psid ="u2572954"; var cpro_pswidth =966; var cpro_psheight =120;
// TODO: handle exception
System.out.println(e); } try { inputStream = serialPort.getInputStream(); outputStream = serialPort.getOutputStream(); } catch (Exception e) { // TODO: handle exception
} try {
serialPort.addEventListener(this); } catch (TooManyListenersException e) { // TODO Auto-generated catch block e.printStackTrace(); }
serialPort.notifyOnDataAvailable(true); try { serialPort.setSerialPortParams(115200, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);// } catch (UnsupportedCommOperationException e) { }
readThread = new Thread(this); readThread.start();
}
@Override
public void serialEvent(SerialPortEvent event) { switch (event.getEventType()) { case SerialPortEvent.BI: case SerialPortEvent.OE: case SerialPortEvent.FE: case SerialPortEvent.PE: case SerialPortEvent.CD: case SerialPortEvent.CTS: case SerialPortEvent.DSR: case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY: break; case SerialPortEvent.DATA_AVAILABLE: byte[] readBuffer = new byte[2000]; try { while (inputStream.available() > 0) {
inputStream.read(readBuffer);
str_reader = new String(readBuffer).trim();
System.out.println(str_reader); }
} catch (IOException e) { // TODO: handle exception }
break;
}
}
public String read() { return str_reader;
}
public void write(String str) { try { outputStream.write(str.getBytes()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace();
}
}
public boolean isOwned() { return portId.isCurrentlyOwned(); }
public void closePort() { serialPort.close();
}
@Override
public void run() { try { Thread.sleep(500); } catch (InterruptedException e) { // TODO: handle exception }
}
}
or
str_reader = new String(readBuffer).trim();
System.out.println(str_reader); }
} catch (IOException e) { // TODO: handle exception }
break;
}
}
public String read() { return str_reader;
}
public void write(String str) { try { outputStream.write(str.getBytes()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace();
}
}
public boolean isOwned() { return portId.isCurrentlyOwned(); }
public void closePort() { serialPort.close();
}
@Override
public void run() { try { Thread.sleep(500); } catch (InterruptedException e) { // TODO: handle exception }
}
}
在用Eclipse做开发时,我发现利用Eclipse控制台可以很方便的实现PC与单片机的串口通讯,这样可以省略自己做一个GUI的步骤,直接利用Console做串口通讯终端。
实现代码如下:
package commPort;
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration;
import java.util.Scanner;
import java.util.TooManyListenersException;
import javax.comm.CommPortIdentifier; import javax.comm.PortInUseException; import javax.comm.SerialPort;
import javax.comm.SerialPortEvent;
import javax.comm.SerialPortEventListener;
import javax.comm.UnsupportedCommOperationException; /**
* <dl>
* <dt><b>类说明:</b></dt><dd> *
* </dd> * </dl>
* @copyright :Copyright 2012. All right reserved. *【Update History】
* Version Date Time Company Name
Department
* ------- ---------- ------------ --------- ---------- ----------- * 1.00 2012-12-27 上午8:13:18 Jason Wei
*/
public class Read_Write { /**
* @param args */
public static void main(String[] args) { CommUtils commUtil=new CommUtils("COM12");
String str1;
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);
String str2; java.util.Scanner in=new Scanner(System.in); while(true) {
str1=in.nextLine(); commUtil.write(str1);
commUtil.run(); // str2=commUtil.read(); // System.out.print(str2);
}
}
}
class CommUtils implements SerialPortEventListener, Runnable { CommPortIdentifier portId; Enumeration<?> portList; SerialPort serialPort; InputStream inputStream; OutputStream outputStream; String str_reader; String str_writer; Thread readThread; String[] commPortList;
public CommUtils(String commName) { portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { CommPortIdentifier temp; // portList.
temp = (CommPortIdentifier) portList.nextElement();
if (temp.getPortType() == CommPortIdentifier.PORT_SERIAL) { if (temp.getName().equals(commName)) { portId = temp; System.out.println("connecting to " + commName);
}
} }
try { serialPort = (SerialPort) portId.open(commName, 2000);
} catch (PortInUseException e) {
var cpro_psid ="u2572954"; var cpro_pswidth =966; var cpro_psheight =120;
// TODO: handle exception
System.out.println(e); } try { inputStream = serialPort.getInputStream(); outputStream = serialPort.getOutputStream(); } catch (Exception e) { // TODO: handle exception
} try {
serialPort.addEventListener(this); } catch (TooManyListenersException e) { // TODO Auto-generated catch block e.printStackTrace(); }
serialPort.notifyOnDataAvailable(true); try { serialPort.setSerialPortParams(115200, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);// } catch (UnsupportedCommOperationException e) { }
readThread = new Thread(this); readThread.start();
}
@Override
public void serialEvent(SerialPortEvent event) { switch (event.getEventType()) { case SerialPortEvent.BI: case SerialPortEvent.OE: case SerialPortEvent.FE: case SerialPortEvent.PE: case SerialPortEvent.CD: case SerialPortEvent.CTS: case SerialPortEvent.DSR: case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY: break; case SerialPortEvent.DATA_AVAILABLE: byte[] readBuffer = new byte[2000]; try { while (inputStream.available() > 0) {
inputStream.read(readBuffer);
str_reader = new String(readBuffer).trim();
System.out.println(str_reader); }
} catch (IOException e) { // TODO: handle exception }
break;
}
}
public String read() { return str_reader;
}
public void write(String str) { try { outputStream.write(str.getBytes()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace();
}
}
public boolean isOwned() { return portId.isCurrentlyOwned(); }
public void closePort() { serialPort.close();
}
@Override
public void run() { try { Thread.sleep(500); } catch (InterruptedException e) { // TODO: handle exception }
}
}
or
str_reader = new String(readBuffer).trim();
System.out.println(str_reader); }
} catch (IOException e) { // TODO: handle exception }
break;
}
}
public String read() { return str_reader;
}
public void write(String str) { try { outputStream.write(str.getBytes()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace();
}
}
public boolean isOwned() { return portId.isCurrentlyOwned(); }
public void closePort() { serialPort.close();
}
@Override
public void run() { try { Thread.sleep(500); } catch (InterruptedException e) { // TODO: handle exception }
}
}
0 0
- java 实现单片机与PC串口通讯
- 单片机与PC机多机通讯 串口通信
- 单片机与PC机串口通讯接地问题
- 单片机和PC机串口通讯试验
- 单片机-串口与PC通信
- 嵌入式系统与PC串口通讯的实现
- 基于Java语言的51单片机串口通讯PC机程序
- 基于Java语言的51单片机串口通讯PC机程序
- 基于Java语言的51单片机串口通讯PC机程序
- PC机与单片机的通讯(1)
- max232管脚讲解 单片机与PC通讯
- PC与单片机串通(串口通信)
- 51单片机与PC进行串口通信
- 51单片机与PC串口通信
- PIC单片机精通_串口通讯与串口调试实例
- 51单片机串口通讯
- Java实现串口通信与单片机通信实例..【Pnoter】
- PC机与单片机多机通讯问题
- Tensorflow: Linear Regression
- SDAU练习四 1003
- 嵌入式lab1
- pl/sql 运算符和表达式
- android事件分发(三)重要的函数requestDisallowInterceptTouchEvent
- java 实现单片机与PC串口通讯
- Cassandra 的 cql入门使用
- //毫米到英寸,单位换算
- 【Memcashed0】学习小结
- SDAU练习四 1003
- IDEA下创建Maven,Servlet,JSP,MYSQL项目
- android google GMS服务包安装
- TCP/IP学习(1)
- 关于SAP系统 数据库底层表设计约束情况