java 串口通信乱码 数据格式

java串口通信接收到乱码,怀疑是数据格式的问题,所以想了解一下。是用C++语言对单片机编程,使单片机传输unsighedchar型(占1个字节)数据。java使用Inp... java 串口通信接收到乱码,怀疑是数据格式的问题,所以想了解一下。

是用C++语言对单片机编程,使单片机传输 unsighed char型(占1个字节)数据。java使用InputStream 类接收数据。

据我了解,inputstream处理的是字节流,那么是否不能接受单片机传来的char型数据,而要用字符流来处理?如果要用字符

流处理的话,java中的字符使用Unicode码,占4个字节,而C++中的字符是ASCII码,占1个字节,这样该怎么处理?
展开
 我来答
wh_bluewater
2012-07-30 · TA获得超过513个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:170万
展开全部
用byte[]数组接收,然后设置编码类型,转换为String就可以了。
new String(bytearray,"US-ASCII');
追问
是这个意思么?

InputStream is;
is=serialport.getInputStream();
byte[] readbuffer=new byte[20];
int num=is.read(readbuffer);
String str=new String (readbuffer,"US-ASCII");
追答
很久没看百度知道了,大体是这样的,不过像你这样写的话最好用
String(byte[] bytes, int offset, int length, String charsetName) 这个构造方法,指定buffer里的有效数据长度。

其实自己动手试一下就知道对不对了,实践是检验真理的唯一标准嘛。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wudykai
2012-08-01 · TA获得超过550个赞
知道小有建树答主
回答量:353
采纳率:0%
帮助的人:301万
展开全部
我觉得你的问题有两个可能:
1,没有正确识别数据包的格式,比如消息头处理不正确
2,消息内部含有非ASC编码的字符串
详情需要看代码能解决。可以M我
追问
接收数据部分代码如下:
try {
/* 从线路上读取数据流 */
while (inputStream.available() > 0) {
int numBytes = inputStream.read(readBuffer);
} //while end
str=new String(readBuffer,"US-ASCII");
/*接收到的数据存放到文本区中*/
in_message.append(str+"/n");
}
catch (IOException e) { }
} //serialEvent() end
} //类R_Frame end

请问哪里有问题??
追答
问题在于没有判断流当中消息的开头位置,随意读取,无法解码
建议你先制订消息格式,然后在发送端和接收端做对应的编码解码工作
比如我们约定,消息头是0x02,消息尾是0x03,那么你要确保消息中不会出现这两个字节的内容,仅仅把他们作为消息开始和结束标志,读取的时候进行消息头查找
逐字节读取,判断是否0x02,如果是,就继续读,一直读到0x03,然后把整个字节数组进行解码
解码的方式要和发送的编码方式相对应
在你的代码中,使用US-ASCII字符集解码,如果发送包含中文或者其他特殊字符,必然要产生乱码
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
c1041249224
2012-07-31 · TA获得超过128个赞
知道答主
回答量:85
采纳率:0%
帮助的人:18.4万
展开全部
好牛跟好牛.中一下必死。拳打脚踢.连击七十八击。画面出现PERFICT表集!
阿四大四大四大打算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zx_8410
2012-07-30 · 超过11用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:31.8万
展开全部
试下java.io.DataInputStream中的readUnsignedByte方法.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式