求救 java单片机通信 在线等

问题描述

最近在做学校的工程训练,需要用到java与串行口通信,单片机一直不停发数据用串口调试助手接受没有问题可PC机上的java程序读取数据,一读取单片机就不再发送数据,应该是java程序的问题,看过好多帖子都没有找到有用的信息,求大神帮助,等下贴出代码

解决方案

解决方案二:
packagelova.comm;importjava.io.BufferedInputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.util.TooManyListenersException;importjavax.comm.CommPortIdentifier;importjavax.comm.NoSuchPortException;importjavax.comm.PortInUseException;importjavax.comm.SerialPort;importjavax.comm.SerialPortEvent;importjavax.comm.SerialPortEventListener;importjavax.comm.UnsupportedCommOperationException;publicclassCommUtilimplementsSerialPortEventListener{privateInputStreamins;privateOutputStreamous;privateSerialPortport;//串口引用privateCommPortIdentifierportId;publicCommUtil(Stringname){try{portId=CommPortIdentifier.getPortIdentifier(name);}catch(NoSuchPortExceptione){e.printStackTrace();}//开启串口try{port=(SerialPort)portId.open("My"+name,1000);}catch(PortInUseExceptione){e.printStackTrace();}//设置参数try{port.setSerialPortParams(4800,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);}catch(UnsupportedCommOperationExceptione){e.printStackTrace();}try{port.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);}catch(UnsupportedCommOperationExceptione1){e1.printStackTrace();}//获取输入输出流try{ins=port.getInputStream();ous=port.getOutputStream();}catch(IOExceptione){e.printStackTrace();}//当有数据是通知port.notifyOnDataAvailable(true);//给串口添加监听器try{port.addEventListener(this);}catch(TooManyListenersExceptione){e.printStackTrace();}}//监听器publicvoidserialEvent(SerialPortEventarg0){switch(arg0.getEventType()){caseSerialPortEvent.BI:System.out.println("BI");break;caseSerialPortEvent.CD:System.out.println("CD");break;caseSerialPortEvent.CTS:System.out.println("CTS");break;caseSerialPortEvent.DSR:System.out.println("DSR");break;caseSerialPortEvent.FE:System.out.println("FE");break;caseSerialPortEvent.OE:System.out.println("OE");break;caseSerialPortEvent.PE:System.out.println("PE");break;caseSerialPortEvent.RI:System.out.println("RI");break;caseSerialPortEvent.OUTPUT_BUFFER_EMPTY:System.out.println("OUTPUT_BUFFER_EMPTY");break;//当有数据时读取数据caseSerialPortEvent.DATA_AVAILABLE:System.out.println("DATA_AVAILABLE");try{while(ins.available()>0){intt=ins.available();System.out.println("len:"+t);byte[]arr=newbyte[t];ins.read(arr);Stringtext=newString(arr).trim();System.out.println("data:"+text);}//while(true){//System.out.println(ins.read());//}}catch(IOExceptione){e.printStackTrace();}break;}}//关闭串口publicvoidclosePort(){if(port!=null){port.close();}}publicstaticvoidmain(String[]args){newCommUtil("COM4");}}
解决方案三:
晚上再来希望有人回
解决方案四:
我也遇到类似的问题,Java程序发送byte型的值0x01(16进制),串口助手收到的是0xE1(16进制)。同学你解决了么!
解决方案五:
问题解决了!
解决方案六:
引用4楼的回复:

问题解决了!

兄弟能把你的程序源码发我下吗?谢谢了280115295@qq.com
解决方案七:
引用5楼的回复:

引用4楼的回复:问题解决了!兄弟能把你的程序源码发我下吗?谢谢了280115295@qq.com

这位大哥能把收到的程序源码发我一份么?多谢~~~~451517251@qq.com
解决方案八:
楼上几位,我最近也在做Java串口,做了好久了都不能读取串口也给我发一份吧jw20082009@qq.com
解决方案九:
我发上来的程序没有错最后发现时单片机的晶振问题将12M的晶振换位11.0592M的问题解决主要是12M晶振时,计算波特率值会有近9%的误差。
解决方案十:
楼上兄弟把Java串口程序发我一份好吗?

时间: 2024-09-04 09:26:12

求救 java单片机通信 在线等的相关文章

java与单片机通信问题

问题描述 java与单片机通信问题 我用java写了一个控制单片机的界面,想在电脑上通过点击这个界面上的控件,来控制单片机.比如:我点击"蜂鸣器",那么单片机上的蜂鸣器就叫. 现在的问题是:不能解决java怎么利用串口和单片机进行通信.求大虾指点指点.谢谢啦 解决方案 首先你必须得懂java怎么通过串口通信,否则一切都是白谈. 其次设计通信协议,比如上位机发送0x01,表示要蜂鸣器响一下:然后单片机通过串口中断获取到这个0x01. 之后单片机控制蜂鸣器响就行了. 解决方案二: java

Android蓝牙开发,与HC-06单片机通信,

问题描述 Android蓝牙开发,与HC-06单片机通信, 单片机发,android端收,android端代码怎么搜索蓝牙设备并连接成功呢? 解决方案 最简单的方法:先到android store上下载一个app做测试,比如'spp蓝牙'这个APP上面有搜索,连接的步骤你的源码来仿照它的写 解决方案二: android 与 蓝牙模块 hc06通信app 开发要点安卓手机通过蓝牙与单片机通信Android 通信--蓝牙 解决方案三: package kankan.idea.bluetoolswit

vc++编软件与单片机通信的问题

问题描述 vc++编软件与单片机通信的问题 点击通信校验后有时会弹出成功,但是有时会没反应,这是为什么?程序有错误吗? void CTestDlg::OnOnCommMscomm1() //小电话 { // int inCount; VARIANT input; BYTE rxdata[2048]; long len,k; COleSafeArray safearray; switch(myComm.GetCommEvent()) { case 2: input=myComm.GetInput(

java-求大神帮忙,在Java串口通信中设置DTR_CONTROL_DISABLE如何实现?

问题描述 求大神帮忙,在Java串口通信中设置DTR_CONTROL_DISABLE如何实现? 写了简单一个串口调试助手的程序,用来与STM32单片机通信,但是 DCB.fDtrControl = DTR_CONTROL_ENABLE的参数不对,使用下载的调试助手可以实现通信其DCB.fDtrControl值为DTR_CONTROL_DISABLE,自己写的却是DTR_CONTROL_ENABLE?是这个原因影响通讯了吗?如果是要如何改进? 解决方案 http://gqdy365.iteye.c

利用VB 6.0实现网络远程PC与单片机通信

在各种单片机应用系统的设计中,常常遇到单片机与PC的通信问题,在速度要求不高.传送距离不远的场合一般采用RS 232标准串行接口实现,在传送距离较远的场合,也有学者研究通过网络实现PC间的通信.但是,要同时满足高速度和远距离PC与单片机通信这是一个迫切需 要解决的问题.随着信息技术的发展,计算机和网络越来越普及,对单片机的远程控制与测量的要求也越来越多.本文在结合现有研究的基础上,对相关的设计进行 一定的改进和创新,设计一个远程通信系统,他由3部分构成:远端PC.本地端PC和单片机系统.通过VB

java串口通信

java串口通信API说明 java串口通信 2008/09/22 20:24 java串口通信API说明 java串口通信    Java提供了 CommunicationAPI(包含于javax.comm包中)用于通过与机器无关的方式,控制各种外部设备.Communications API,是标准的Java的扩展部分,它在JavaAPI中是没有附带的.因此,必须先在SUN公司网站的Java站点(www.java.sun.com)上下载这个扩展类库. 1.1Communications API

线程通信-Java socket通信 使用jconsole监控发现线程数不断增加

问题描述 Java socket通信 使用jconsole监控发现线程数不断增加 Java socket 使用线程通信,作为接收方每接收一个交易信息,使用jsonsole监控线程发现线程数量增加22个左右,经生产环境运行结果,当已启动线程总数达到2600多时 tomcat出现类似于假死的状况,不再接收任何交易信息.目前正在使用系统定时任务每天定时重启(每日交易量在70-80左右),求大手帮我分析下,现在附上图片和部分代码.jsonsole监控图:部分代码;public class SimpleS

Java串口通信读取浮点型数据

问题描述 Java串口通信读取浮点型数据 怎么将如下位机中的数据:如温度读取并显示,大神们有具体的例子吗 解决方案 这个要取决于你下位机是用的什么方式通讯的,它的通信协议.基本的思路是读取串口数据,然后根据协议对得到缓冲区的字节数组进行解析. 参考:http://blog.csdn.net/wssiqi/article/details/14107341 解决方案二: java 串口通信Java串口通信简介

java代码的在线运行,对其内存限制,时间检测等问题[ga]

问题描述 java代码的在线运行,对其内存限制,时间检测等问题[ga] 基本需求类似[java在线代码编译运行],多个客户都可以各自通过web浏览器输入java代码, 然后点击执行java代码,输出结果. 我是通过(Class thisClass = Class.forName(className,true,ClassLoader.getSystemClassLoader()); 来实现的) 目前比较担心某个用户输入的java代码可能是个死循环(如:while(true){xxxx}), 或者高