Java 串口 mysql_java串口通讯
使用java進行串口通信確實不是串口通訊操作的主流方法,另外寫好的的java程序無法隨意的遷移。不過對熟悉java的同學確實挺有幫助,下面是我使用java語言進行串口通訊的過程。
1 usb轉串口安裝。
2 jar包的安裝。
3 java代碼的實現。
usb轉串口的安裝。
一般把串口線插上電腦就會提示安裝驅動,在網上下一個串口驅動就會成功了。可我的電腦卻怎么也成功不了,在網上找了各種方法就是不行(我的系統是win7)。更有不靠譜的說法是重裝系統。總之試變了網上的驅動,還用什么驅動精靈之類的都把還是沒有成功。打開設備管理器,usb-serial controller總是有×××的嘆號。
我的解決方法。
運行-》輸入hdwwiz-》下一步選擇安裝我手動列表中選擇硬件(高級)-》下一步選擇端口(com和lpt)-》下一步選擇public-》然后選擇第一個public ............->再點擊下一步進行安裝。
最后終于成功了。
安裝jar包
安裝jar包和我們平常的引入jar包不太一樣。附件是用到的jar包。
首先把RXTXcomm.jar放入所用jre的lib目錄下,把rxtxSerial.dll放到jre的bin目錄下就可以了。
代碼實現
主要是兩步第一步查到所使用的com口。第二步對串口進行監聽。
具體的代碼如下:
import java.io.*;
import java.util.*;
import test.FeelTheBase;
import test.SimpleReadA;
import gnu.io.*;
public class SimpleRead implements SerialPortEventListener { // SerialPortEventListener
// 監聽器,我的理解是獨立開辟一個線程監聽串口數據
public CommPortIdentifier portId; // 串口通信管理類
static Enumeration portList; // 已經連接上的端口的枚舉
public InputStream inputStream; // 從串口來的輸入流
public InputStreamReader streamReader;
public OutputStream outputStream;// 向串口輸出的流
public OutputStreamWriter streamwriter;
public SerialPort serialPort; // 串口的引用
public void init() {
try {
serialPort = (SerialPort) portId.open(s, 2000);// 打開串口名字為myapp,延遲為2毫秒
inputStream = serialPort.getInputStream();
outputStream = serialPort.getOutputStream();
serialPort.addEventListener(this); // 給當前串口天加一個監聽器
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
catch (TooManyListenersException e) {
}
serialPort.notifyOnDataAvailable(true); // 當有數據時通知
try {
serialPort.setSerialPortParams(57600, SerialPort.DATABITS_8, // 設置串口讀寫參數
SerialPort.STOPBITS_1, SerialPort.PARITY_ODD);
} catch (UnsupportedCommOperationException e) {
}
}
public void serialEvent(SerialPortEvent event) {// SerialPortEventListener
// 的方法,監聽的時候會不斷執行
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:// 當有可用數據時讀取數據,并且給串口返回數據
try {
while (inputStream.available() > 0) {
byte[] by = new byte[inputStream.available()];
inputStream.read(by);
System.out.println(by);//獲得的數據
}
} catch (IOException e) {
}
break;
}
}
public static void main(String[] args) {
SimpleRead com3 = new SimpleRead();
try {
portList = CommPortIdentifier.getPortIdentifiers(); // 得到當前連接上的端口
while (portList.hasMoreElements()) {
CommPortIdentifier p = (CommPortIdentifier) portList
.nextElement();
if (p.getPortType() == CommPortIdentifier.PORT_SERIAL) {// 判斷如果端口類型是串口
if (p.getName().equals("COM25")) { // 判斷如果COM3端口已經啟動就連接
com3.setCom(p);
com3.setOther(com5);
System.out.println(p.getName());
}
}
}
com3.init(); // 實例一個;
} catch (Exception e) {
e.printStackTrace();
}
}
}
總結
以上是生活随笔為你收集整理的Java 串口 mysql_java串口通讯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: b700a怎么连蓝牙_小身材有大功能,小
- 下一篇: plsql打开sql窗口快捷键_SQL干