我使用java RXTX串口通信接收的数据太长时会被截去后面的内容?

akeng 发布于 2013/08/16 15:55
阅读 2K+
收藏 0
我用rxtx进行串口通信接收数据的时候发现如果写入到串口的数据太长的话,后面的内容会被截取掉。
现在有没有什么办法把完整内容打印出来的?小菜求牛人解答
我的代码:
public void serialEvent(SerialPortEvent event) // 如果串口有数据上报则主动调用此方法
		{
			if (event.getEventType() == SerialPortEvent.DATA_AVAILABLE)// 当有可用数据时读取数据,并且给串口返回数据
			{
				ByteArrayOutputStream baos = new ByteArrayOutputStream();
				byte[] buffer = new byte[1024];
				int len = -1;
				try
				{
					while (in.available() > 0)
					{
						len = in.read(buffer);
						baos.write(buffer, 0, len);
					}
					baos.flush();
					System.out.println(new String(baos.toByteArray()));
					
				} catch (IOException e)
				{
					e.printStackTrace();
				}
			}
		}
加载中
0
1
1505412718
打印要放到While循环里
0
Jeff_Lau_NUAA
Jeff_Lau_NUAA
串口通讯本来就是字节流,需要自己组包的,你需要看下原理
akeng
akeng
什么意思能说下么?
0
啊魰&
啊魰&
你的buffer 才1024的大小,就只能每次接受1024,大了肯定截取了。  通常是规定发送端的每次发送大小,不足的补0. 要不然只能是每个字节读取,判断开头结束,但这效率就低了
返回顶部
顶部