不知道你是不是用51单片机往串口发数据,是的话那是因为51的sbuf最多存放8个字节,所以你发12个字节会分成两次发完。还有在接收的时候最好定义好通信协议,比如加一个侦头,一个侦尾,通过这两个字节的内容来接收数据。
站在用户的角度思考问题,与客户深入沟通,找到贵港网站设计与贵港网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、网站建设、企业官网、英文网站、手机端网站、网站推广、国际域名空间、雅安服务器托管、企业邮箱。业务覆盖贵港地区。
老兄,提问还是给点悬赏分嘛,不要吝啬哪点分,知识是无价的,你给得越多,回答你的人才会越多。
1、字节数组转换为字符串
byte[] byBuffer = new byte[20];
String strRead = new String(byBuffer);
strRead = String.copyValueOf(strRead.toCharArray(), 0, byBuffer.length]);
2、字符串转换成字节数组
byte[] byBuffer = new byte[200];
String strInput=abcdefg;
byBuffer= strInput.getBytes();
注意:如果字符串里面含有中文,要特别注意,在android系统下,默认是UTF8编码,一个中文字符相当于3个字节,只有gb2312下一个中文相当于2字节。这种情况下可采取以下办法:
解决方法:
1.字符串内容设置为定长,或者定义一个结束符(或字符串,如连续2个0xFF)附加在字符串尾部,程序以此方式先以文本方式读取字符串数据。
2.字符串内容也按照二进制方式发送。
3.在传输的字符串和二进制数据前附加N字节的标识字节,其中存储发送的字符串和二进制字符串长度。
方法很多。