串口通信实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{//监听是否有新数据读入的监听器
public void serialEvent(SerialPortEvent event)
{
if(event.getEventType()==SerialPortEvent.DATA_AVAILABLE)
{//若有新数据传来,则将其转换成字符串,并加进缓存
String readResult;
readResult="";
}
readResult=new String(readBuffer);
buffer=new StringBuffer("接收:"+readResult+"\n");
recieve=true;//然后置新数据读入标识为真
}Байду номын сангаас
}
}
(III)、关闭串口函数:
public void close()
{
try
{
outputStream.close();
inputStream.close();
}
catch(IOException e){System.out.println("输入输出流关闭失败!");}
serialPort.close();
}
完整运行程序如图所示:
图1
(2)
通过本次串口实验,我对串口通信的知识了解的更透彻,这是在刚开始对串口通信知识不了解的情况下就编程而造成许多错误之后才得到的结果。在网上查找资料的时候也接触到了不少其他的编程语言例如VB,delphi,C#等,这也让我对这些从没有学过的语言有所了解,我想这些知识对以后的实验工作都有帮助。
2、
1、检查PC是否具有串行通信接口,并按其针脚类准备一条串口通信线缆。
2、串口包的安装,下载javacomm20-win32.zip并解压,将win32com.dll复制到<JDK>\bin目录下;将comm.jar复制到<JDK>\lib;把javax.comm.properties也同样拷贝到<JDK>\lib目录下,再将上面提到的文件放到JRE相应的目录下就可以了。
catch (TooManyListenersException e) {System.out.println("监听器太多了!");}
serialPort.notifyOnDataAvailable(true);
}
(II)、监听串口是否有新数据读入,并将其转换成字符串,并加进缓存
public class serialPortListener implements SerialPortEventListener
3、实验步骤
1、将实验所需RS-232缆线准备好,并将JAVA串口包复制到相应地目录下。
2、查找有关串口通信的书籍以及在网上查找相应地串口通信代码。
3、用JAVA编程软件JCreator编写代码。
4、实验分析与总结
(1)
(I)、对串口读写之前需要先打开一个串口并检测串口是否被占用:
public void open()
byte[] readBuffer=new byte[20];
try
{
while(inputStream.available()>0)
inputStream.read(readBuffer);
}
catch(IOException e)
{
System.out.println(e);
System.out.println("从串口读取数据时发生错误!");
try
{
outputStream=serialPort.getOutputStream();
inputStream=serialPort.getInputStream();
}
catch(IOException e){System.out.println("无法初始化输入输出流!");}
try
{serialPort.addEventListener(new serialPortListener());}
华南农业大学
实验报告
-----------------------------------------目录-----------------------------------------
1、
了解串行通信的背景知识后,通过三线制制作一条串口通信线(PC-PC),并编程实现两台PC间通过RS-232C通信。要求两台PC机能进行实时的字符通信,并了解工业自动化控制中的基本通信方式。
try
{serialPort.setSerialPortParams
(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);}
catch(UnsupportedCommOperationException e){System.out.println("不支持通信");}
{//打开串口以及输入输出流
recieve=false;
try
{serialPort=(SerialPort)portId.open("Serial Communication", 2000);}
catch(PortInUseException e){System.out.println("端口正被占用!");}
public void serialEvent(SerialPortEvent event)
{
if(event.getEventType()==SerialPortEvent.DATA_AVAILABLE)
{//若有新数据传来,则将其转换成字符串,并加进缓存
String readResult;
readResult="";
}
readResult=new String(readBuffer);
buffer=new StringBuffer("接收:"+readResult+"\n");
recieve=true;//然后置新数据读入标识为真
}Байду номын сангаас
}
}
(III)、关闭串口函数:
public void close()
{
try
{
outputStream.close();
inputStream.close();
}
catch(IOException e){System.out.println("输入输出流关闭失败!");}
serialPort.close();
}
完整运行程序如图所示:
图1
(2)
通过本次串口实验,我对串口通信的知识了解的更透彻,这是在刚开始对串口通信知识不了解的情况下就编程而造成许多错误之后才得到的结果。在网上查找资料的时候也接触到了不少其他的编程语言例如VB,delphi,C#等,这也让我对这些从没有学过的语言有所了解,我想这些知识对以后的实验工作都有帮助。
2、
1、检查PC是否具有串行通信接口,并按其针脚类准备一条串口通信线缆。
2、串口包的安装,下载javacomm20-win32.zip并解压,将win32com.dll复制到<JDK>\bin目录下;将comm.jar复制到<JDK>\lib;把javax.comm.properties也同样拷贝到<JDK>\lib目录下,再将上面提到的文件放到JRE相应的目录下就可以了。
catch (TooManyListenersException e) {System.out.println("监听器太多了!");}
serialPort.notifyOnDataAvailable(true);
}
(II)、监听串口是否有新数据读入,并将其转换成字符串,并加进缓存
public class serialPortListener implements SerialPortEventListener
3、实验步骤
1、将实验所需RS-232缆线准备好,并将JAVA串口包复制到相应地目录下。
2、查找有关串口通信的书籍以及在网上查找相应地串口通信代码。
3、用JAVA编程软件JCreator编写代码。
4、实验分析与总结
(1)
(I)、对串口读写之前需要先打开一个串口并检测串口是否被占用:
public void open()
byte[] readBuffer=new byte[20];
try
{
while(inputStream.available()>0)
inputStream.read(readBuffer);
}
catch(IOException e)
{
System.out.println(e);
System.out.println("从串口读取数据时发生错误!");
try
{
outputStream=serialPort.getOutputStream();
inputStream=serialPort.getInputStream();
}
catch(IOException e){System.out.println("无法初始化输入输出流!");}
try
{serialPort.addEventListener(new serialPortListener());}
华南农业大学
实验报告
-----------------------------------------目录-----------------------------------------
1、
了解串行通信的背景知识后,通过三线制制作一条串口通信线(PC-PC),并编程实现两台PC间通过RS-232C通信。要求两台PC机能进行实时的字符通信,并了解工业自动化控制中的基本通信方式。
try
{serialPort.setSerialPortParams
(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);}
catch(UnsupportedCommOperationException e){System.out.println("不支持通信");}
{//打开串口以及输入输出流
recieve=false;
try
{serialPort=(SerialPort)portId.open("Serial Communication", 2000);}
catch(PortInUseException e){System.out.println("端口正被占用!");}