javaRXTX串口通信接收的数据太长时会被截去后面的内容?

我用rxtx进行串口通信接收数据的时候发现如果写入到串口的数据太长的时候,后面的内容会被截取。有没有什么办法把完整内容打印出来的?publicvoidserialEven... 我用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();
}
}
}
我的代码。
展开
 我来答
麟达令通
2013-08-21 · TA获得超过270个赞
知道小有建树答主
回答量:333
采纳率:50%
帮助的人:205万
展开全部
在串口设置里,可以设置接受和发送缓冲区大小。你改大些就是了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-17
展开全部
分段是肯定会的,这些都是有缓存的。
更多追问追答
追问
能把内容全部打印出来么?
追答
那是肯定的。
这样会好一点

while ((len = in.read(buffer)) > 0){
baos.write(buffer, 0, len);
}

不行的话,就另开一线程,专门读。

串口虽然的缓存,但,也是要及时读取的。即中间处理不能延时太久。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式