前段时间做了一个串口通信的系统,当时测试的时候是232直接对接的,通信时没异常。
但后来经常要出去演示所以得带笔记本,但笔记本上没有232接口。所以我去市面上买了一根USB转串口的线回来,安装了驱动程序以后链接串口,打开串口的时候发现发送到命令返回值会丢失,接收到返回的数据残缺不完整。不知道是为什么。请问哪位高手是否也遇见过这种问题???
但后来经常要出去演示所以得带笔记本,但笔记本上没有232接口。所以我去市面上买了一根USB转串口的线回来,安装了驱动程序以后链接串口,打开串口的时候发现发送到命令返回值会丢失,接收到返回的数据残缺不完整。不知道是为什么。请问哪位高手是否也遇见过这种问题???
解决方案 »
- dom4j解析xml文件,当xsd文件路径中包括中文时,会出现找不到xsd文件错误
- 大哥们,帮我看一下程序代码的意思
- Jtree 如何存到数据库 如何又从数据库读出 形成一颗树,在线等 高手门来讨论吧!
- 写了个能把Jar打包成EXE发布到没有Java的电脑也可以运行的程序,没人感兴趣?
- 远程数据备份的问题
- sos:请帮我看看这个程序?
- 超难度 stringbuffer 处理10万条记录
- 这段代码能在jdk1.4.1上执行吗???
- 一个我不懂的数据库访问问题,关于自动编号的获取
- 关于System.arraycopy效率的质疑
- Jtable里如何加入jbutton?
- 关于线程死锁的问题(老师说上CSDN标题要够长,回复才够多)
int result = -1;
int[] TagIdentify = new int[] {0xAA, 0xFF, 0x02, 0x80, 0x00};
TagIdentify[TagIdentify.length -
1] = Check(TagIdentify, (TagIdentify.length - 1));
for (int i = 0; i < TagIdentify.length; i++) {
try {
outputStream.write(TagIdentify[i]);
} catch (IOException ex1) {
ex1.printStackTrace();
return result = 1;
}
}
//************************************************
int countt = 0;
while (countt == 0) {
try {
countt = inputStream.available();
} catch (IOException ex) {
}
}
//************************************************
byte[] TagIdentify2 = new byte[countt];
try {
inputStream.read(TagIdentify2);
this.ISO = TagIdentify2;
} catch (IOException ex1) {
ex1.printStackTrace();
return result = 1;
}
return result = 0;
}我知道什么原因了,就因为我加了
int countt = 0;
while (countt == 0) {
try {
countt = inputStream.available();
} catch (IOException ex) {
}
}
加了这个就会在用USB转串口的线的时候出问题。
如果 byte[] TagIdentify2 = new byte[6]; 直接这样的话不会有问题!请问谁知道怎么解决?我觉得加了countt = inputStream.available();
程序运行速度明显的加快了很多~~~~