志在指尖
用双手敲打未来

java 串口(java获取串口)

java串口

1.串口通讯指串口按位(bit)发送和接纳字节。尽管比按字节(byte)的并行通讯慢,但是串口能够在运用一根线发送数据的一起用另一根线接纳数据。
2.串口是计算机上一种非常通用的设备通讯协议(不要与通用串行总线UniversalSerialBus或许USB混淆)
3.地,串口用于ASCII码字符的传输。通讯运用3根线完结:(1)地线,(2)发送,(3)接纳。由于串口通讯是异步的,端口能够在一根线上发送数据一起在另一根线上接纳数据。其他线用于握手,但是不是有必要的。串口通讯最重要的参数是比特率、数据位、中止位和奇偶校验。对于两个进行通讯的端口,这些参数有必要匹配java 串口
4.-232(ANSI/EIA-232规范)是IBM-PC及其兼容机上的串行衔接规范、RS-422(EIARS-422-AStandard)是Apple的Macintosh计算机的串口衔接规范。RS-485(EIA-485规范)是RS-422的改善。
说到开源,恐怕很少有人不挑大指称誉。学生经过开源代码学到了常识,程序员经过开源类库获得了别人的成功经验及能够准时完结手头的工程,商家经过开源软件赚到了钱……,总归是皆大欢喜。但是开源软件或类库的首要缺陷便是大多缺乏详细的阐明文档和运用的比如,或许便是软件代码随意你用,便是文档,比如和后期服务收钱。这也难怪,毕竟就像某个闻名NBA球员说的那样:“我还要养家,所以千万美元以下的合同别找我谈,不然我宁可待业”。是啊,支持开源的人也要养家,收点钱也不过火。要想既不花钱又学到常识就只能凭借网络和了,我只是想抛砖引玉,为开源事业做出点微薄共献,能为你的工程处理哪怕一个小问题,也就足够了。
尽管我的这个系列介绍的东西不是什么Web结构,也不是什么开源服务器,但是我信任,作为一个程序员,什么样的问题都会遇到。有时候越是简单的问题反而越棘手;越是小的地方就越是找不到称手的家伙。只要你不是整天只与“架构”、“构件”、“结构”打交道的话,信任我所说的东西你一定会用到。java

java获取串口

importgnu.io.*;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
importjava.util.Enumeration;
importjava.util.TooManyListenersException;
/**
*java串口通讯
*CreatedbyDELLon2017/4/24.
*/
publicclassTest4implementsSerialPortEventListener{
privatestaticfinalStringDEMONAME=”串口测试”;
/**
*检测系统中可用的端口
*/
privateCommPortIdentifierportId;
/**
*枚举类
*/
privateEnumerationportList;
/**
*输入流
*/
privatestaticInputStreaminputStream;
/**
*RS-232的串行口
*/
privateSerialPortserialPort;
/**
*串口返回信息
*/
privatestaticStringtest=””;
/**
*初始化
*
*@parambaudRate波特率
*/
publicvoidinit(intbaudRate){
//获取系统中可用的端口
portList=CommPortIdentifier.getPortIdentifiers();
while(portList.hasMoreElements()){
portId=(CommPortIdentifier)portList.nextElement();
if(portId.getPortType()==CommPortIdentifier.PORT_SERIAL&&portId.getName().equals(“COM4”)){
System.out.println(“发现端口:”+portId.getName());
try{
serialPort=(SerialPort)portId.open(DEMONAME,2000);
//设置串口监听
serialPort.addEventListener(newTest4());
//设置开启监听
serialPort.notifyOnDataAvailable(true);
//设置波特率、数据位、停止位、检验位
serialPort.setSerialPortParams(baudRate,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
//获取输入流
inputStream=serialPort.getInputStream();
}catch(PortInUseExceptione){
e.printStackTrace();
}catch(TooManyListenersExceptione){
e.printStackTrace();
}catch(UnsupportedCommOperationExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
/**
*监听函数
*@paramserialPortEvent
*/
publicvoidserialEvent(SerialPortEventserialPortEvent){
switch(serialPortEvent.getEventType()){
//获取到有效信息
caseSerialPortEvent.DATA_AVAILABLE:
readComm();
break;
default:
break;
}
}
/**
*读取串口信息
*/
privatevoidreadComm(){
byte[]readBuffer=newbyte[15];
try{
intlen=0;
while((len=inputStream.read(readBuffer))!=-1){
test+=newString(readBuffer,0,len).trim();
break;
}
for(byteb:readBuffer){
if(b<0){
//byte的范围是-128到+127
inti=128+(int)b+127+1;
//转换成16进制
System.out.println(“读取的信息:”+Integer.toHexString(i));
}else{
System.out.println(“读取的信息:”+Integer.toHexString(b));
}
}
}catch(IOExceptione){
e.printStackTrace();
}
}
privatevoidclose(){
serialPort.close();
}
publicstaticvoidmain(String[]args){
newTest4().init(9600);
}
}

未经允许不得转载:IT技术网站 » java 串口(java获取串口)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载